Window如何注册dll、ocx控件

在程序集成时,有时需要对厂家提供的dll或者ocx控件进行注册。其一般操作为:开始》命令指示符(右击管理员身份运行)》regsvr32 文件路径。

比如对devocx.ocx进行注册,在F:\test\demo\20110928_VSKDM_V1R4B3SP2Fix5文件夹里。

regsvr32
F:\test\demo \20110928_VSKDM_V1R4B3SP2Fix5\devocx.ocx。
按照常理就能注册成功,但是有时会报错。

错误1、提示,找不到指定的模块或者dll依赖项。

解答:一般多是dll的依赖项缺少,所以此时到windows/system32查找dll是否存在。

开始->所有程序->Microsoft Visual Studio 2008 ->Visual Studio Tools->Visual Studio 2008 命令提示

查看程序或动态链接库需要的动态链接库

dumpbin /dependents d:\test.exe

查看动态链接库的输出函数

dumpbin /exports d:\libmysql.dll

在这之后,再进行注册,有时会出现:

1、win7 下注册dll文件失败,提示模块“xx.dll”已加载,但找不到入口点DllRegisterServer

原因:该dll文件非可注册组件,没有包含DllRegisterServer函数,可用depend.exe 查看

2、win7 下注册dll文件失败,提示模块“xx.dll”已加载,但对DllRegisterServer的调用失败,错误代码为0x80020009

原因:win7的权限问题,可用以下步骤解决。但win7下把dll放入system32文件下,用下面方法行不通

开始--所有程序--附件--命令行--右键“以管理员身份运行”进入cmd方式,然后在cmd方式下进入要注册dll所在文件夹中,再次使用regsvr32 /s xx.dll,就可以了

64的window系统注册和32系统注册32位Com组件的区别

在64位系统下注册com组件会有两个regsvr32.exe注册执行文件

The 64-bit version is %systemroot%\System32\regsvr32.exe /s dynwrapx.dll

The 32-bit version is %systemroot%\SysWoW64\regsvr32.exe /s dynwrapx.dll

在64位系统下注册com组件需要将动态文件(dll)和执行文件(exe)放

到%systemroot%\SysWoW64目录,然后注册的方式也会稍有变化,注册方式:
%systemroot%\SysWoW64\regsvr32.exe /s dynwrapx.dll
使用SysWoW64目录下的regsvr32.exe注册文件注册,可以通过cmd命令行跳到cd %systemroot%\SysWoW64目录然后注册,注册成功会提示你注册成功提示;

在32位系统下注册com组件会使用regsvr32.exe注册执行文件

在32位系统下注册com组件直接需要将动态文件(dll)和执行文件(exe)放到%systemroot%\System32目录,
在菜单栏搜索“运行”直接输入regsvr32.exe /s dynwrapx.dll运行即可;

分享

34.204.191.31