【Debug】VS EXE 运行“应用程序无法正常启动(0xc000007b)”
问题描述
今天在 VS2013 发布应用程序后,本地电脑可以正常打开 exe,但放到其他电脑无法正常启动,打印“应用无法正常启动(0xc000007b)。请单击“确定”关闭应用程序”。
问题解决思路
这种情况主要还是编译电脑与运行电脑的 dll 的版本不匹配或者缺少 dll 文件,实际上缺少 dll 文件大多会直接提醒找不到的 dll 文件名,而版本不匹配则不好解决。
解决方法有两种:
了解编译电脑安装了哪些软件相关软件,比如 Qt,vs2013 等,在运行电脑上安装相应软件,基本上能解决这个问题。这种方法的前提是编译方与运行方可以进行沟通,但往往难于实现,即使能够交流,安装和搭建环境需要不少花费不少时间。
将运行电脑上可能不匹配的和缺少的 dll 文件,从编译电脑放入发布包。这种方法的前提是查找到软件运行需依赖哪些 dll 文件,以及判断哪些 dll 可能需要放入。
查找依赖 dll 文件
1. 在编译电脑上运行应用程序,打开 windows 任务管理器->性能,在左下角打开资源管理器
2. 选择 CPU,勾选所关注的应用程序,在下方关联的模块中,可以清晰的看到程序所依赖的 dll 件,全选后将信息复制到 txt,方便后面对照。
3. 按照依赖 dll 文件列表,将可能不匹配或者缺少的 dll 文件,从系统对应路径拷贝到应用程序目录。这里我拷贝了 MSVCP120.dll,msvcp_win.dll,MSVCR120.dll,MSVCR120D.dll,msvcrt.dll 几个文件。最保险的是将所有依赖 dll 都放入,但软件包会比较冗余。
4. 将新的应用程序软件包放到其他干净的电脑试运行,若成功即可,若不成功可返回去拷贝其他 dll 文件。
我的程序到这里已运行正常,后面就是打包发布了。
版权声明: 本文为 InfoQ 作者【柒号华仔】的原创文章。
原文链接:【http://xie.infoq.cn/article/a2e79fb950e226fc9ee6c3d6e】。文章转载请联系作者。
评论