OCX 控件注册 C+/VC
来源:互联网 发布:fpga时序优化 编辑:程序博客网 时间:2024/04/29 13:09
方法一:在dos或windows命令行下运行:regsvr32 ocxname.ocx 注册
示例:
regsvr32 netshare.ocx //注册netshare.ocx控件
regsvr32 /u netshare.ocx //解除netshare.ocx控件的注册
如果netshare.ocx文件不在system目录时,还必须在文件名前加上完整的路径。除了regsvr32应用程序之外,microsoft在它的web站点上还提供了一个称为regclean.exe的程序,可以检查注册表并去掉丢失的组件在注册表中的条目。regclean.exe除了可以删除“悬挂”的条目,它还提供一个“undo”文件帮助恢复错误的删除。
用regsvr32.exe注册activex控件虽然简单,但需要用户手工进行注册,在不用时还需手工解除注册。
方法二:用install shield,在里面选“self-registered”,安装程序将自动注册
方法三:api函数注册
此方法的设计思路是:先将activex控件载入内存,然后验证其有效性,最后直接在内存地址中执行其注册函数(dllregisterserver、undllregisterserver)。其编程方法是:
1、使用windows api函数loadlibrary载入activex控件;
2、使用getprocaddress函数获取activex控件中注册函数dllregisterserver(注销函数为dllunregisterserver)指针;
3、使用callwindowproc函数执行已载入内存的activex控件注册函数(dllregisterserver、undllregisterserver)。
示例:
typedef int (callback* myfunction)(void);
myfunction myfunction = null;
hinstance handle = null ;
handle = loadlibrary("trdragdroptreectrl.ocx");
if( handle != null )
{
myfunction = getprocaddress(handle,"dllregisterserver");
if( myfunction != null )
{
myfunction();
}
}
小小经验:
1、有时候在程序中使用ocx控件时失效,检查一下调用之间是否执行了afxoleinit()。如果使用了容器,还需要保证执行了afxenablecontrolcontainer()
2、使用activex control test container可以很方便地测试制作出来的ocx控件(从开始菜单-》程序-》microsoft visual studio 6.0 -> microsoft visual studio 6.0 tools可以看到该工具)
3、有时候控件制作的没有问题,注册方式也对,但是注册的时候确失败了,可能时dll的版本不对,使用dependencies查看ocx控件依赖dll是否跟现在使用的dll版本一致
- OCX 控件注册 C+/VC
- VC++ OCX 控件注册
- VC++ OCX 控件注册
- 【c++】注册OCX控件
- VC如何自动注册MSCHRT20.OCX控件
- VC++注册,卸载OCX控件,以及判断是否注册
- VC++注册,卸载OCX控件,以及判断是否注册
- VC++注册,卸载OCX控件,以及判断是否注册
- OCX 控件注册
- OCX控件注册
- OCX控件注册
- InstallShield注册OCX控件
- InstallShield注册OCX控件
- OCX控件要注册
- ocx控件注册方法
- 如何注册OCX控件
- 注册OCX控件
- 注册 OfficeControl.ocx 控件
- 将多个Selcet结果一起输出
- JSTL之数字、日期格式化---、
- 搜索引擎使用
- Word中数据统计与公式编辑技巧四招
- Oracle 运行
- OCX 控件注册 C+/VC
- 表单属性之readOnly与disabled
- 解析 Linux 中的 VFS 文件系统机制
- JS子页面操作父页面table 添加行并传值
- [linux]打包时过滤某些子目录方法
- Using Google Maps in Android
- 访客最近浏览过的网页设置代码
- oracle10g创建数据库的方法
- BlackBerry模拟器,如何支持中文