好工具推荐系列:Dependencies。可以解决MFC运行出错:应用程序无法正常启动0xc000007b

本文涉及的产品
云数据库 Redis 版,社区版 2GB
推荐场景:
搭建游戏排行榜
简介: 好工具推荐系列:Dependencies。可以解决MFC运行出错:应用程序无法正常启动0xc000007b

本人在Win7 64位系统,VS2013使用MFC编译的程序,程序使用32位编译。



生成的exe拷贝在纯净的操作系统WinXP/Win7,运行出错:应用程序无法正常启动0xc000007b

image.png



原因及对策:


dll文件32位和64位混淆了。其根本原因是缺乏所需要的DLL,提供了错误版本的dll相当于没有dll。


win7 64位操作系统里,C:\Windows\System32文件夹里的dll为64位的,32位的dll在C:\Windows\SysWOW64里。32位的程序误用64位的dll自然会出错,改从SysWOW64里拷相应的dll里即可。出人意料!System32和SysWOW64,容易被名字所迷惑!


另外,


32位MFC的.dll文件也可以在C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\redist\x86找到。


64位MFC的.dll文件也可以在C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\redist\x64找到。


想要最新版本的redist,请访问:


The latest supported Visual C++ downloads


The latest supported Visual C++ downloads


------附录------


一、工具:depends,可以查看exe文件的依赖库,仅适用于winxp/win7/win8,不能用于win10.


官网下载:Dependency Walker (depends.exe) Home Page 分32位和64位两种


https://github.com/multilang-depends/depends


使用方法:


1、点击工具栏上的文件→打开,找到需要分析的exe可执行文件即可,这里就点击Depends.exe可执行文件进行分析(可执行文件格式,包括 DLL、EXE、FON)。


2、点击一个dll动态链接库,右边就会出现两个窗口。第一个窗口是所选的Dll模块所使用的函数,分为:序数、提示、函数、入口点等讯息。


3、下面窗口是所有需要的Dll模块的属性。出错的数据会有红色、黄色(有些是环境不同造成的)的警示问号。


二、(推荐)工具:Dependencies,可以应用在win7/win8/win10,不支持winxp,但还是推荐使用!


软件下载:


https://github.com/lucasg/Dependencies


https://github.com/lucasg/Dependencies/releases


软件依赖环境:


需要下载Microsoft Visual C++ Redistributable,The latest supported Visual C++ downloads:


The latest supported Visual C++ downloads


最后,运行程序:


DependenciesGui.exe


三、DLL文件下载网站:Download missing DLL files for free | DLL‑files.com


相关实践学习
基于Redis实现在线游戏积分排行榜
本场景将介绍如何基于Redis数据库实现在线游戏中的游戏玩家积分排行榜功能。
云数据库 Redis 版使用教程
云数据库Redis版是兼容Redis协议标准的、提供持久化的内存数据库服务,基于高可靠双机热备架构及可无缝扩展的集群架构,满足高读写性能场景及容量需弹性变配的业务需求。 产品详情:https://www.aliyun.com/product/kvstore     ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库 ECS 实例和一台目标数据库 RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
相关文章
|
21天前
【Qt 学习笔记】使用QtCreator创建及运行项目 | 项目初始代码解释
【Qt 学习笔记】使用QtCreator创建及运行项目 | 项目初始代码解释
32 1
|
C++ Windows
【Debug】VS EXE运行“应用程序无法正常启动(0xc000007b)”
今天在VS2013发布应用程序后,本地电脑可以正常打开exe,但放到其他电脑无法正常启动,打印“应用无法正常启动(0xc000007b)。请单击“确定”关闭应用程序”。
960 0
【Debug】VS EXE运行“应用程序无法正常启动(0xc000007b)”
|
1月前
Qt程序打包发布记录使用windeployqt工具
Qt程序打包发布记录使用windeployqt工具
|
6月前
《QT从基础到进阶·二十八》QProcess使用,从一个exe程序启动另一个exe程序
《QT从基础到进阶·二十八》QProcess使用,从一个exe程序启动另一个exe程序
92 0
|
8月前
|
C++
调试实战 —— dll 加载失败之 Debug Release 争锋篇
调试实战 —— dll 加载失败之 Debug Release 争锋篇
|
11月前
|
区块链 C语言 虚拟化
QT程序打包发布Release时的注意事项
QT程序打包发布Release时的注意事项
|
编译器 C++ Windows
Qt程序运行依赖环境打包方法:windeployqt方法
3分钟学会Qt程序运行依赖环境打包方法:windeployqt方法!
307 0
Qt程序运行依赖环境打包方法:windeployqt方法
|
IDE 开发工具
Visual Studio下程序开发: 编译QT程序Debug正常,Release出错
Visual Studio下程序开发: 编译QT程序Debug正常,Release出错
813 0
Visual Studio下程序开发: 编译QT程序Debug正常,Release出错
|
计算机视觉
Qt实用技巧:win将ffmpeg、opengl、osg等各种库封装成qt模块,运行需要dll,增加自动拷贝运行库到exe目录执行脚本
Qt实用技巧:win将ffmpeg、opengl、osg等各种库封装成qt模块,运行需要dll,增加自动拷贝运行库到exe目录执行脚本
|
Windows
Qt程序打包生成exe详细步骤
Qt程序打包生成exe详细步骤
Qt程序打包生成exe详细步骤