Windows程序安装包安装完要注册dll,但注册时提示注册不成功【 RegSvr32 failed with exit code 0x3】,查了一下是有上层dll依赖。判断是依赖msvcr100.dll,所以在注册的时候想着先注册msvcr100.dll再注册自己的dll就可以解决,这样可以省去小白用户需要安装VC2010运行库的麻烦。但实际发现,安装完注册dll时,msvcr100.dll注册报错【 RegSvr32 failed with exit code 0x4】,msvcr100.dll压根无法注册成功。但也发现钉钉微信等都有包含VC库dll,特别是msvcr100.dll。但他们的安装程序在有没有VC库的电脑上都可以完美安装和运行。
顾求各位指教,对VC运行库的依赖,如何最简便方法解决?避免没装VC库的电脑无法安装使用。
msvcr100.dll不需要注册,放到程序目录下就可以。或者复制到system32下。
参考GPT和自己的思路:
对于这个问题,最简便的方法就是把VC运行库打包进安装包中进行发布,而不是依赖于系统已经安装了该库。这样可以确保使用你的程序的电脑都有所需的依赖库,避免了没有安装VC库的电脑无法安装使用的问题。
另外,如果使用的是Visual Studio进行开发的话,可以在项目的属性中,通过“C/C++ -> Code Generation”选项将运行库设置为“/MT”或“/MTd”,这样编译生成的EXE文件就会包含所需的VC运行库,不用再单独打包。但需要注意的是,这样会使得生成的EXE文件变大,同时也可能会导致一些潜在的兼容性问题,需要根据具体情况进行权衡选择。
用installshield,打包你的程序
不知道你这个问题是否已经解决, 如果还没有解决的话:方案一:
微软官方解决方案 http://www.microsoft.com/en-us/download/details.aspx?id=30679#
打开该连接:
弹出如下界面:
点击Download:
根据操作系统选择需要下载的文件勾选 然后点Next就会下载。
下载完成后得到(以64位操作系统为例)名为:
vcredist_x64.exe 的执行程序 双击运行。
查看 C:\Windows\System32目录下是否有msvcr110.dll
微软官方网站加载过慢,可能需要用到科学上网
方案二
由于微软官方可能加载过慢
可以自行百度 vcredist 下载对应的版本
运行就行。
方案三(不推荐 我搞了好久没搞明白):
自行下载msvcr110.dll
根据操作系统位数
下载对应的msvcr110.dll
64位: 需要将 msvcr110.dll 放到 C:\Windows\System32目录下
32位:没有实验 但估计也是放在 C:\Windows\System32目录下
之后
按win + R 建
输入
regsvr32 msvcr110.dll
回车