regsvr32 命令使用和regsvr32 dll失败原因介绍

一 、regsvr32介绍

Regsvr32命令用于注册COM组件,是 Windows 系统提供的用来向系统注册控件或者卸载控件的命令,以命令行方式运行。搭配 regsvr32.exe 使用的 DLL,必须实现 DllRegisterServer 和 DllUnregisterServer 两个函数。

基本格式:

regsvr32 [/u] [/s] dllname

参数介绍:

/u 解除服务器注册
/s 无声解除服务器注
dllname dll全路径和名字

二、 regsvr32 注册失败原因

当我们在cmd命令行下注册dll时,若命令执行失败,会有提示窗口信息: “xxx.dll加载失败,找不到指定的模块”。

通过查找资料,regsvr32命令执行失败,大致有以下两个因素:

1. 检查当前注册dll所在的路径是否正确
2. 检查该dll所依赖的dll是否都存在

更多情况下,第二个原因居多。即当前注册的dll依赖别的dll,一种是系统的dll,一种是自己写的dll。我们可以用dependency walker工具打开dll,其中带有
黄色问号的dll,是当前注册dll所依赖的dll。

在项目问题定位中就遇到过这问题,我们的程序使用了自己写的dll,这个dll是用vs2010在32位系统上写的,当运行于64
系统时,程序执行异常,后面通过分析是64系统中缺少vs2010运行时库。

猜你喜欢

转载自blog.csdn.net/xiao3404/article/details/80952708