“RegSvr32 failed with exit code 0x3”问题的解决办法

    用 Inno Setup制作了一个安装exe文件,测试安装时报告错误:

无法注册DLL/OCX:RegSvr32 failed with exit code 0x3

    一开始以为是权限不足引起的,用管理员权限重新运行安装exe文件,还是报告同样的错误。由于提示中给出了无法注册的 DLL 文件名,到命令提示符界面下,执行 regsvr32 命令注册 DLL,报告错误:

LoadLibrary( ) 失败,找不到指定的模块

    由于是加载动态库失败,就想到可以用 Dependency Walker 工具 (官网是 http://dependencywalker.com/) 查看一下无法注册的 DLL 文件依赖哪些其他 DLL 文件,查看时报错:

Error: At least one required implicit or forwarded dependency was not found.

msvcp100.dll  Error opening file. 系统找不到指定的文件。

    msvcp100.dll 是一个 C run-time library,包含在 Visual Studio 2010中。如果没有安装 Visual Studio 2010,可以下载安装 Microsoft Visual C++ 2010 SP1 Redistributable Package, 下载网址是:

32位 ----  https://www.microsoft.com/en-us/download/details.aspx?id=8328

64位 ---- https://www.microsoft.com/en-us/download/details.aspx?id=13523

    由于只缺少 msvcp 100.dll 这一个文件,最省事的方法是在网上下载或到安装有 VS 2010 的计算机上找到这个文件,把它拷贝到系统对应的目录下。

    如果应用程序是 32 位的,则拷贝 32 位的 msvcp100.dll ,通常在 64 位 Windows 的 C:\Windows\SysWOW64 目录下。

    如果应用程序是 64位的, 则拷贝 64 位的 msvcp100.dll ,通常在 64 位 Windows 的 C:\Windows\System32 目录下。

    拷贝完成后,再次运行安装 exe 程序,能够成功执行。回想一下,情况应该是这样:那个无法注册的 DLL 文件是由他人用 VS 2010 开发的,我在制作安装包时不知道有这种依赖关系,只是把 DLL 文件放入安装要包含的文件,所以就出现了错误。由于 msvcp100.dll 文件是由微软开发的,不适合放入自己制作的 exe 文件,最好的处理方式还是提示用户,让没有安装过 Microsoft Visual C++ 2010 SP1 Redistributable Package 的用户到微软的网站下载安装,之后再安装我们自己开发的程序。

最后总结一下:

      如果 RegSvr32 failed with exit code 0x3 错误,就用 Dependency Walker 工具查看无法注册的文件依赖哪些其他文件,把缺少的文件补上就能解决这个问题了。

pendency Walker

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值