ActiveX控件的注册

用ActiveX控件可快速实现小型的组件重用、代码共享,从而提高编程效率,降低开发成本。但是ActiveX控件对于最终用户并不能直接使用,因为ActiveX控件必须先在Windows中注册。注册ActiveX控件一般来有一下几种途径,它们有各自的优点,运用范围也不同。

Regsvr32.exe注册

Regsvr32.exe位于Windows目录的system子目录下。点击Windows的“开始→运行”菜单,在对话框中输入以下命令:

regsvr32 C:/Program Files/realinfo/DBCOM.ocx

注册DBCOM.ocx控件到系统中去

regsvr32 /u C:/Program Files/realinfo/DBCOM.OCX

从windows系统中卸载DBCOM.OCX控件的注册

如果DBCOM.OCX文件不在system目录时,还必须在文件名前加上完整的路径。除了regsvr32应用程序之外,Microsoft在它的Web站点上还提供了一个称为regclean.exe的程序,可以检查注册表并去掉丢失的组件在注册表中的条目。regclean.exe除了可以删除“悬挂”的条目,它还提供一个“undo”文件帮助恢复错误的删除。

用regsvr32.exe注册ActiveX控件虽然简单,但需要用户手工进行注册,在不用时还需手工解除注册。

开发环境注册

在我们进行程序设计时,各种开发环境本身提供一个注册ActiveX控件的方法。

比如vc++,选择“project→Add to project→Components and Controls…”菜单,选择控件所在路径,然后选择控件文件点击“Insert”即可。

本方法仅适合程序员在设计程序过程中手工进行,对用户而言,并没有实现在本地机上自动注册。

安装程序注册

大型应用软件一般都有一个安装程序,在安装程序中解决ActiveX控件的注册是较为理想的一种方案。在用户执行安装程序时,这些ActiveX控件将自动在用户机器上安装并注册。InstallShield是目前较为流行的制作安装程序的工具,使用它可以制作出专业级的Setup安装程序,还可以注册应用程序使用到的ActiveX控件。而且,在以后使用控制面板的“添加/删除程序”卸载该软件时,安装程序会自动注销掉以前注册的ActiveX控件。在紫金桥实时数据库具的安装卸载过程中既利用了此种方法完成DBCOM.OCX的注册与注销。

注册函数注册

上面提到运行regsvr32.exe应用程序将弹出注册是否成功的对话框,注意看内容“DllRegisterServer in DBCOM.ocx succeeded”或“UnDllregisterServer...”,其实,通常每个可用的ActiveX控件都有DllRegisterServer、UnDllregisterServer这两个自注册函数包含在其中,我们可以用定义API函数的方法来定义它,然后直接使用该函数来进行注册和反注册。该方法没有对ActiveX控件文件的验证,假如该控件没有有效的DllRegisterServer功能(即不具有自注册功能),也就找不到以上的两个API函数,照样会有错误信息弹出。

API函数注册

此方法的设计思路是:先将ActiveX控件载入内存,然后验证其有效性,最后直接在内存地址中执行其注册函数(DllRegisterServer、UnDllregisterServer)。其编程方法是:

1、使用Windows API函数LoadLibrary载入ActiveX控件;

2、使用GetProcAddress函数获取ActiveX控件中注册函数DllRegisterServer(注销函数为DllUnregisterserver)指针;

3、使用CallWindowProc函数执行已载入内存的ActiveX控件注册函数(DllRegisterServer、UnDllregisterServer)。上面所述的ActiveX控件注册方法各有特点。经实际使用,效果良好。您可根据实际情况灵活选用。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值