欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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

程序员文章站 2022-06-25 20:24:38
...

一 、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运行时库。