【Debug】VS EXE运行“应用程序无法正常启动(0xc000007b)”

问题描述

今天在VS2013发布应用程序后,本地电脑可以正常打开exe,但放到其他电脑无法正常启动,打印“应用无法正常启动(0xc000007b)。请单击“确定”关闭应用程序”。

34d6b8b072fa46ee8eeec9a9d54bf6a4.png

问题解决思路

这种情况主要还是编译电脑与运行电脑的dll的版本不匹配或者缺少dll文件,实际上缺少dll文件大多会直接提醒找不到的dll文件名,而版本不匹配则不好解决。

解决方法有两种:

  1. 了解编译电脑安装了哪些软件相关软件,比如Qt,vs2013等,在运行电脑上安装相应软件,基本上能解决这个问题。这种方法的前提是编译方与运行方可以进行沟通,但往往难于实现,即使能够交流,安装和搭建环境需要不少花费不少时间。
  2. 将运行电脑上可能不匹配的和缺少的dll文件,从编译电脑放入发布包。这种方法的前提是查找到软件运行需依赖哪些dll文件,以及判断哪些dll可能需要放入。

查找依赖dll文件

1. 在编译电脑上运行应用程序,打开windows任务管理器->性能,在左下角打开资源管理器

a86b14d524f94683bfbb7e75b971e136.png

2. 选择CPU,勾选所关注的应用程序,在下方关联的模块中,可以清晰的看到程序所依赖的dll件,全选后将信息复制到txt,方便后面对照。

aa5c1fc6074d42608bb4c35988d30541.png

3. 按照依赖dll文件列表,将可能不匹配或者缺少的dll文件,从系统对应路径拷贝到应用程序目录。这里我拷贝了MSVCP120.dll,msvcp_win.dll,MSVCR120.dll,MSVCR120D.dll,msvcrt.dll几个文件。最保险的是将所有依赖dll都放入,但软件包会比较冗余。

4. 将新的应用程序软件包放到其他干净的电脑试运行,若成功即可,若不成功可返回去拷贝其他dll文件。

我的程序到这里已运行正常,后面就是打包发布了。

猜你喜欢

转载自blog.csdn.net/NoBack7/article/details/124623866