Active控件注册的几种方法.docx

上传人:牧羊曲112 文档编号:3152048 上传时间:2023-03-11 格式:DOCX 页数:4 大小:38.37KB
返回 下载 相关 举报
Active控件注册的几种方法.docx_第1页
第1页 / 共4页
Active控件注册的几种方法.docx_第2页
第2页 / 共4页
Active控件注册的几种方法.docx_第3页
第3页 / 共4页
Active控件注册的几种方法.docx_第4页
第4页 / 共4页
亲,该文档总共4页,全部预览完了,如果喜欢就下载吧!
资源描述

《Active控件注册的几种方法.docx》由会员分享,可在线阅读,更多相关《Active控件注册的几种方法.docx(4页珍藏版)》请在三一办公上搜索。

1、Active控件注册的几种方法ActiveX控件注册的几种方法 本文中的程序原为VC+所编写,略改动一些,将程序用C+Builder编写。 ActiveX控件是一个动态链接库,是作为基于COM服务器进行操作的,并且可以嵌入在包容器宿主应用程序中,ActiveX控件的前身就是OLE控件。由于ActiveX控件与开发平台无关,因此,在一种编程语言上开发的ActiveX控件可以无须作任何修改,即可在另一种编程语言中使用,其效果如同使用Windows通用控件一样。如:在VC+中开发的ActiveX控件,不作任何修改即可应用于VB中。由此可见,通过使用ActiveX控件即可实现快速小型的组件重用、代码共

2、享,从而提高编程效率。 -从Internet下载的ActiveX控件,或从其他途径得到的ActiveX控件,用户应该怎样做才能正确使用呢?一般来说,一个外来ActiveX控件要在Windows中被正确使用,首先必须将控件文件(*.OCX)复制到硬盘中,然后将其在Windows中注册,未在Windows中注册过的ActiveX控件是不能使用的。注册ActiveX控件一般来说有三种途径,适用范围不同,各有各的优点,下面分别讨论。 一、使用Regsvr32.exe程序 对ActiveX控件进行注册 -对于未注册过的ActiveX控件可使用此软件对其进行注册,外来ActiveX控件要应用到自己的程序中

3、也必须进行注册。该文件位于Windows目录的system子目录下。使用方法如下:点击“开始”“运行”;在运行对话框中输入以下命令: regsvr32 注册一个ActiveX控件 regsvr32 /u 解除某ActiveX控件的注册 -我们使用一些带ActiveX控件的应用程序时,有时会出现不能运行的情况,这有可能是其自带ActiveX控件未注册所至,这时不妨使用上述命令一试。 二、使用安装程序 制作软件:InstallShield -使用regsvr32.exe来注册ActiveX控件虽然简单,但需要用户手工注册,在不用时还得手工解除注册,因此,这对一个应用程序来说并非好的解决方案。大型应

4、用软件一般都有一个安装程序,在安装程序中解决ActiveX控件注册是较为理想的一种方案。使用InstallShield可以制作出专业级的Setup,还可注册其中的ActiveX控件;而且,在以后携载软件时,自动注销掉以前注册的ActiveX控件。方法如下: 启动InstallShield,使用ProjectWizard建立一个新的项目; 新建一个“FileGroup”,将需要注册的ActiveX控件文件放入此“FileGroup”中; 将上述“FileGroup”的“SelfRegistered”属性设置成“Yes”。 -上述步骤仅为制作Setup中设置自动注册ActiveX控件几步,至于使用

5、InstallShield怎样制作一个完整的Setup不在本文讨论范围之中,请读者自己参看有关书籍。 三、在应用程序中 加入注册代码 -对于小型程序不宜采取第二种方法,较好的方法是在程序中嵌入注册代码,实现应用程序自注册。其编程方法是: 使用WindowsAPI函数LoadLibrary载入ActiveX控件; 使用GetProcAddress函数获取ActiveX控件中注册函数DllRegisterServer指针; 调用注册函数DllRegisterServer。 -下面以C+ Builder 6.0编写的RegActivex程序为例,介绍怎样在程序中自动注册ActiveX控件。 在For

6、m中添加两个Button,属性设置如: Button1-Caption=注册ActiveX控件; Button2-Caption=注销ActiveX控件; 当Button1时,将对指定控件进行注册;当点击Button2时,将解除指定控件的注册。 双击Button1,添加代码如下: void _fastcall TForm1:Button1Click(TObject *Sender) HINSTANCE hLib=LoadLibrary(F:c.ocx);/指定要注册的ocx文件的路径及文件名。 if (hLib=NULL) MessageBox(Handle,不能载入Dll文件!,失败ing.

7、,MB_OK); return; /获取注册函数DllRegisterServer地址 FARPROC lpDllEntryPoint; lpDllEntryPoint = GetProcAddress(hLib,DllRegisterServer); /调用注册函数DllRegisterServer if(lpDllEntryPoint!=NULL) if(FAILED(*lpDllEntryPoint) MessageBox(Handle,调用DllRegisterServer失败!,失败ing.,MB_OK); FreeLibrary(hLib); return; ; MessageBo

8、x(Handle,注册成功!,Reg,MB_OK); else MessageBox(Handle,调用DllRegisterServer失败!,失败ing.,MB_OK); 双击Button2,添加代码如下: void _fastcall TForm1:Button2Click(TObject *Sender) HINSTANCE hLib=LoadLibrary(F:c.ocx); if (hLib=NULL) MessageBox(Handle,不能载入Dll文件!,失败ing.,MB_OK); return; /获取注册函数DllRegisterServer地址 FARPROC lpD

9、llEntryPoint; lpDllEntryPoint = GetProcAddress(hLib,DllUnregisterServer);/注意这里是DllUnregisterServer,老妖著。 /调用注册函数DllRegisterServer if(lpDllEntryPoint!=NULL) if(*lpDllEntryPoint) MessageBox(Handle,调用DllUnRegisterServer失败!,失败ing.,MB_OK); FreeLibrary(hLib); return; ; MessageBox(Handle,注销成功!,Unreg,MB_OK); else MessageBox(Handle,调用DllUnRegisterServer失败!,结果,MB_OK); 编译联接上述程序,即可得一个可执行文件。另需注意的是:应将ActiveX控件文件复制到Windows的system目录下。 读者可自行找一个ocx文件来注册测试一下的说。

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号