组件的自动注册与卸载

发表于:2007-07-01来源:作者:点击数: 标签:
有时我们在制作软件安装程序的时候,需要注册一些组件,那么如何实现这一功能呢?请往下看。 1、对于进程内组件,可以利用 windows 系统提供的Regsrv32.exe 比如运行RegSrv32 d:\com.dll (RegSrv32运行时调用com.dll的引出函数DL LR egisterServer,真正注册


    有时我们在制作软件安装程序的时候,需要注册一些组件,那么如何实现这一功能呢?请往下看。

 

1、对于进程内组件,可以利用windows系统提供的Regsrv32.exe

    比如运行RegSrv32 d:\com.dll  (RegSrv32运行时调用com.dll的引出函数DLLR egisterServer,真正注册的是在DLLRegisterServer中实现)

    如果要反注册,可以用:RegSrv32 /u d:\com.dll(此时调用DLLUnregSrvServer函数)

2、对于进程外组件,因为它是可执行文件,不能也没有必要提供引出函数供其他程序调用来实现注册。

    COM规范规定,支持自注册的进程外组件必须支持两个命令参数/RegServer和/UnregServer,来实现注册和反注册操作。

3、实现自动卸载

    组件对象被卸载的条件:1,组件中对象数为0  2,类厂锁计数器为0。

    COM中提供了一个函数CoFreeAllLibraries,它能检测当前进程中所有组件程序,当发现某个满足条件时,就调用FreeLibrary卸载组件。


原文转自:http://www.ltesting.net