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

本文涉及的产品
Redis 开源版,标准版 2GB
推荐场景:
搭建游戏排行榜
云数据库 Tair(兼容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
相关文章
|
6月前
【Qt 学习笔记】使用QtCreator创建及运行项目 | 项目初始代码解释
【Qt 学习笔记】使用QtCreator创建及运行项目 | 项目初始代码解释
982 1
|
5月前
Qt6.5打包(QT windeployqt不是内部或外部命令、QT错误:缺少libgcc_s_seh-1.dll ,无法正常启动(0xc000007b) 问题解决方法)
Qt6.5打包(QT windeployqt不是内部或外部命令、QT错误:缺少libgcc_s_seh-1.dll ,无法正常启动(0xc000007b) 问题解决方法)
657 1
|
C++ Windows
无法启动此程序,因为计算机中丢失api-ms-win-crt-runtime-l1-1-0.dll。尝试重新安装该程序以解决此问题。
无法启动此程序,因为计算机中丢失api-ms-win-crt-runtime-l1-1-0.dll。尝试重新安装该程序以解决此问题。
无法启动此程序,因为计算机中丢失api-ms-win-crt-runtime-l1-1-0.dll。尝试重新安装该程序以解决此问题。
|
6月前
Qt程序打包发布记录使用windeployqt工具
Qt程序打包发布记录使用windeployqt工具
调试实战 —— dll 加载失败之 Debug Release 争锋篇
调试实战 —— dll 加载失败之 Debug Release 争锋篇
|
区块链 C语言 虚拟化
QT程序打包发布Release时的注意事项
QT程序打包发布Release时的注意事项
|
C++
STM32bug【 KEIL安装新版本后编译出现无法打开 core_cm3.h 问题 】
STM32bug【 KEIL安装新版本后编译出现无法打开 core_cm3.h 问题 】
571 0
|
编译器 C++ Windows
Qt程序运行依赖环境打包方法:windeployqt方法
3分钟学会Qt程序运行依赖环境打包方法:windeployqt方法!
496 0
Qt程序运行依赖环境打包方法:windeployqt方法
|
Java Shell Linux
Mac阅读spring 5.0.x版本源码准备(windows差不多一样),附报错解决及准备阶段调试
Mac阅读spring 5.0.x版本源码准备(windows差不多一样),附报错解决及准备阶段调试
Mac阅读spring 5.0.x版本源码准备(windows差不多一样),附报错解决及准备阶段调试
|
Ubuntu Shell 计算机视觉
Qt实用技巧:ubuntu发布程序打包流程(解决插件xcb加载失败)
Qt实用技巧:ubuntu发布程序打包流程(解决插件xcb加载失败)
Qt实用技巧:ubuntu发布程序打包流程(解决插件xcb加载失败)