一、   使用Regsvr32.exe程序对ActiveX控件进行注册

     对于未注册过的ActiveX控件可使用此软件对其进行注册,外来ActiveX控件要应用到自己的程序中也必须进行注册。该文件位于Windows目录的system子目录下。使用方法如下:点击“开始”→“运行”;在运行对话框中输入以下命令:

regsvr32     <   文件名   >                 注册一个ActiveX控件
regsvr32     /u     <   文件名   >         解除某ActiveX控件的注册
     我们使用一些带ActiveX控件的应用程序时,有时会出现不能运行的情况,这有可能是其自带ActiveX控件未注册所至,这时不妨使用上述命令一试。另外,VC++使用者若对regsvr32.exe的编码感兴趣的话,可在VC++的联机帮助中找到其源代码。若使用VC++   6.0,则在MSDN光盘的/sample/VC98/MFC/controls/regsvr中。  
     二、   使用安装程序制作软件:InstallShield

     使用regsvr32.exe来注册ActiveX控件虽然简单,但需要用户手工注册,在不用时还得手工解除注册,因此,这对一个应用程序来说并非好的解决方案。大型应用软件一般都有一个安装程序,在安装程序中解决ActiveX控件注册是较为理想的一种方案。使用InstallShield可以制作出专业级的Setup,还可注册其中的ActiveX控件;而且,在以后携载软件时,自动注销掉以前注册的ActiveX控件。方法如下:

     1.   启动InstallShield,使用Project   Wizard建立一个新的项目;

     2.   新建一个“File   Group”,将需要注册的ActiveX控件文件放入此“File   Group”中;

     3.   将上述“File   Group”的“Self-Registered”属性设置成“Yes”。

     上述步骤仅为制作Setup中设置自动注册ActiveX控件几步,至于使用InstallShield怎样制作一个完整的Setup不在本文讨论范围之中,请读者自己参看有关书籍。

     三、   在应用程序中加入注册代码

     对于小型程序不宜采取第二种方法,较好的方法是在程序中嵌入注册代码,实现应用程序自注册。其编程方法是:

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

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

     3.   调用注册函数DllRegisterServer(或注销函数DllUnregisterServer)。

     下面以VC++   6.0编写的RegActivex程序为例,介绍怎样在程序中自动注册(注销)ActiveX控件。RegActivex的主体框架由VC++   6.0的AppWizard自动产生,在其基础上增加两个菜单项:“注册ActiveX控件”、“注销ActiveX控件”。当选择“注册ActiveX控件”菜单时,将对控件toweratl.ocx(一个汉诺游戏)进行注册;当选择“注销ActiveX控件”菜单时,将解除控件toweratl.ocx的注册。

     1.   使用VC++   6.0建立一个单文档的应用程序RegActivex,其他项目接受默认设置;

     2.   给应用程序增加两个菜单项:“注册ActiveX控件”、“注销ActiveX控件”,步骤如下:

     ①   单击VC++   6.0左边窗口的“ResoureView”,双击MENU项目下的IDR_MAINFRAME以打开菜单编辑器;

     ②   在菜单编辑器中,加入一个主菜单“注册”,在“注册”主菜单下加入两个菜单项:“注册ActiveX控件”、“注销ActiveX控件”;

     3.   给新建的菜单项   “注册ActiveX控件”   和“注销ActiveX控件”增加响应函数:

     ①   在资源编辑其中,双击MENU中的IDR_MAINFRAME打开菜单编辑器,单击“注册ActiveX控件”,按Ctrl+W打开MFC   Class   Wizard;

     ②   双击Messages框中的COMMAND,给“注册ActiveX控件”菜单项增加响应函数OnRegisterReg(),单击右边“Edit”按钮给OnRegisterReg()函数增加如下代码:

void   CMainFrame::OnRegisterReg()
    {
    //ActiveX控件的路径及文件名
    LPCTSTR   pszDllName= "toweratl.ocx ";
                //装载ActiveX控件
    HINSTANCE   hLib   =   LoadLibrary(pszDllName);
                if   (hLib   <   (HINSTANCE)HINSTANCE_ERROR)
                {
                                MessageBox( "不能载入Dll文件! ", "结果 ",MB_OK);
                                return;
                }
    //获取注册函数DllRegisterServer地址
                FARPROC   lpDllEntryPoint;  
                lpDllEntryPoint   =   GetProcAddress
(hLib,_T( "DllRegisterServer "));
                //调用注册函数DllRegisterServer
  if(lpDllEntryPoint!=NULL)
                {
                                if(FAILED((*lpDllEntryPoint)()))
                                {
MessageBox( "调用DllRegisterServer  
失败! ", "结果 ",MB_OK);
FreeLibrary(hLib);
return;
                                };
MessageBox( "注册成功 ", "结果 ",MB_OK);
                }
                else
MessageBox( "调用DllRegisterServer失败! "
, "结果 ",MB_OK);
}
     ③   “注销ActiveX控件”菜单项响应函数的编写方法同上,代码也相似,只是将  
“lpDllEntryPoint=GetProcAddress
(hLib,_T( "DllRegisterServer "));”改成:
                lpDllEntryPoint   =   GetProcAddress
(hLib,_T( "DllUnregisterServer "))。
     4.   编译联接上述程序,即可得一个可执行文件。另需注意的是:应将ActiveX控件文件toweratl.ocx复制到Windows的system目录下。控件文件toweratl.ocx在微软出版的《Visual   C++   6.0程序员指南》所附光盘中可以找到。  
     5.   测试上述程序:运行《Visual   C++   6.0程序员指南》所附光盘中的game2程序,若使用RegActivex注册了toweratl.ocx控件,则该程序可以正常运行;若使用RegActivex注销了toweratl.ocx控件则game2不能运行。

对ActiveX控件进行注册相关推荐

  1. ActiveX控件的注册

    用ActiveX控件可快速实现小型的组件重用.代码共享,从而提高编程效率,降低开发成本.但是ActiveX控件对于最终用户并不能直接使用,因为ActiveX控件必须先在Windows中注册.注册Act ...

  2. ActiveX控件的注册和反注册

    一:用MFC生成的ActiveX控件,需要注册之后才能使用. 注意:注册与反注册都需要管理员权限,才能操作成功. 注册命令:regsvr32 "E:\Clock.ocx" 反注册命 ...

  3. 关于错误码0x80040154 MFC中ACtiveX控件没有注册的正确解决方案

    今天遇到一个问题,以前VC++6.0做好的工程文件在另一台电脑上无法运行,并且报错, CoCreateInstance of OLE control {67397AA3-7FB1-11D0-B148- ...

  4. ActiveX 控件注册的几种方法 VC++编写

    ActiveX 控件是一个动态链接库,是作为基于COM 服务器进行操作的,并且可以嵌入在包容器宿主应用程序中,ActiveX 控件的前身就是OLE 控件.由于ActiveX 控件与开发平台无关,因此, ...

  5. 自动注册activex控件

    编写Delphi应用程序时,经常会遇到一些ActiveX控件[注:扩展名为OCX的控件或DLL的类型库],它们为应用程序的开发提供了简单的操作途径.然而,这些程序在发布的同时,面临ActiveX控件注 ...

  6. ActiveX控件注册

    它是用来对未注册的"ActiveX控件"进行注册的,外来ActiveX控件要应用到自己的程序中也必须使用它注册,ActiveX技术是微软于1996年推出,得到了许多软件公司的支持, ...

  7. java 判断ocx是否存在_OCX控件的注册卸载,以及判断是否注册

    方法一:在dos或Windows命令行下运行:regsvr32 ocxname.ocx 注册 示例: regsvr32 netshare.ocx     //注册netshare.ocx控件 regs ...

  8. OCX控件的注册卸载,以及判断是否注册

    方法一:在dos或Windows命令行下运行:regsvr32 ocxname.ocx 注册 示例: regsvr32 netshare.ocx     //注册netshare.ocx控件 regs ...

  9. 修改注册表添加信任站点及启用Activex控件(转载)

    // //    添加信息站点及将指定IP添加到本地Intranet中, //    "*"=dword:00000002 表示受信任的站点区域 //    "*&quo ...

最新文章

  1. 如何学习项目管理?项目管理工具有哪些?
  2. 这回导师们颤抖了,这个网站能匿名评价其“人品”,已有大量“不良”导师被爆...
  3. linux 子网和广播地址异常
  4. 博弈论入门之威佐夫博弈
  5. CocosCreate粒子系统白边问题
  6. 拉格朗日乘数法(一种寻找变量受一个或多个条件所限制的多元函数的极值的方法)
  7. oracle 删除数据 快慢,记录一下Drop表空间的速度
  8. VTK:可视化之CaptionActor2D
  9. C++ternary search三元搜索的实现算法(附完整源码)
  10. 命令执行无回显的一些姿势
  11. html css加载不了_CSS加载会阻塞页面显示?
  12. java 代码块 作用_Java核心(三):代码块的作用
  13. java 数组转字符串 字符串转数组,java高级面试笔试题
  14. easyui datagrid 动态绑定列
  15. 绝美前端HTML登录页面
  16. 美国大学计算机专业排名 圣地亚哥,U.S.News美国大学计算机专业排名
  17. 地理总结(二)--我国华北华南华中等地区的划分
  18. Blend for Visual Studio
  19. 命令行基础-vim编辑器
  20. 让我在这枯燥的实验室机房里,告诉你们什么是嵌入式软件开发

热门文章

  1. Java服务,CPU100%问题如何快速定位?
  2. python爬取丁香园首页疫情json数据,尝试存入mysql数据库
  3. 强制类型转化(数组名以及数组名取地址)
  4. Mybatis(1)——Mybatis Generator自动生成代码
  5. 爬虫|wallhere壁纸批量下载
  6. 人事管理系统是什么?HR系统有什么用?
  7. 广州大学计算机投档分数线,2021年广州大学最低投档分数线及录取位次
  8. 【JAVA】 容纳对象 Set
  9. 柔性AMOLED基板PI浆料行业现状调研及趋势分析报告
  10. cst matlab,CST-MATLAB-API-1.0.0 Linking matlab and cst - 下载 - 搜珍网