如题,多谢

解决方案 »

  1.   

    dll要实现DllRegiserServer,DllUnregisterServer,DllCanUnloadNow,DllGetClassObject方法,dll还要实现IClassFactory,其中实现IClassFactory与DllGetClassObject方法是必须的,否则别想成功地创建组件.在注册表中需要在HKEY_CLASSES_ROOT\CLSID目录下加入类的CLSID作为注册表项,然后再往这个项中加入默认值作为组件名称,在这个新建项下加入InprocServer32注册项,然后再往这个项中加入默认值作为DLL路径.客户这边,需要使用CoCreateInstance创建类厂,这个函数会使用CoGetClassObject方法,而这个方法还会调用DLL中的DllGetClassObject方法,真正创建类厂的工作在DllGetClassObject中完成.在完成创建类厂之后,DLL需要使用IClassFactory的CreateInstance创建组件,然后把组件接口返回给客户.客户这边使用接口的QueryInterface方法查询接口,使用Release方法释放组件.如果你实现了DllRegiserServer,DllUnregisterServer方法,就可以在cmd中使用Regsvr32命令来注册组件