Windows下程序启动时出现0xc000007b错误的解决方案
一、背景介绍
不久前用Qt开发了一款小工具在公司使用,Debug运行时一切正常。可是当Release编译发布打包之后,运行时弹出这样的提示框:
略一思考,首先排除了DLL缺失的可能性。我知道Qt应用程序在发布的时候,需要将相关DLL都拷贝到同一个目录下,还得把平台插件文件夹也加进来。因此,整个发布后的程序组织结构如下:
因此排除了DLL缺失的问题。那么可能是什么原因呢?在Google中搜索错误代码0xc000007b,不少帖子提示是库的版本不一致。有可能是因为在64位程序中引用了32位的库,或者在32位的程序中引入了64位的库导致出错的。怎么确定呢?使用Dependency Walker即可查看:
可以看到,我的程序是64位版本的,但是确实引用了两个32位的库。那么,知道了原因了就好办了。
二、解决方案
(1)方案一:方法比较简单,将32位的库都替换成64位的库。这个通过设置VS的链接器选项就可以完成。一般是因为粗心而导致链接到了版本不一致的库,但是在Debug和编译时都不报错,略感无语。
(2)方案二:对于第一种方案不适用的情况,必须采用第二种方案了。本人在第二种情况中纠缠了多时。经过反复确认,工程类型设置成了X64类型,库也替换成了x64的,但是编译出来的程序中总会链接到32位的库。这样,不管我怎么编译修改,仍然还是弹出0xc000007b错误提示框。解决方法是:修改工程的manifest文件。
像这样:把processorArchitecture都修改成amd64,重新编译程序后链接的就是64位的库了。仅仅只要修改这两个地方,如果改动其他地方,可能导致程序出错:
三、参考链接
1. http://blog.csdn.net/vbcom/article/details/7245186
2. https://msoos.wordpress.com/2010/09/11/0xc000007b-error-solution/
3. http://stackoverflow.com/questions/10492037/the-application-was-unable-to-start-correctly-0xc000007b
4. https://social.msdn.microsoft.com/Forums/en-US/c0bc5e8e-1b17-40e2-9476-c1900b5b04ea/comctl32dll-64-bit-version?forum=netfx64bit
5. http://stackoverflow.com/questions/24148196/incorrect-comctl32-dll-is-loaded-after-porting-a-project-from-win32-to-x64-platf
转载于:https://www.cnblogs.com/csuftzzk/p/windows_launch_error_0xc000007b.html
Windows下程序启动时出现0xc000007b错误的解决方案相关推荐
- mysql server安装不成功,解决Mysql5.7.17在windows下安装启动时提示不成功问题
在机器上首次安装MySQL, 操作系统是win7 mysql 的安装文件是 zip 格式的,版本是5.7.17 解压之后,安装步骤是 1.首先找个文件存放这些安装程序以及 数据 假设是E:\\mysq ...
- linux挂载ssd到根目录下,linux启动时挂载ssd错误
debian启动时,挂载lenovo的ssd时会延迟一段时间,并且dmesg输出错误信息 下面是dmesg |grep ata2的输出信息 [ 0.000000] BIOS-e820: [mem 0x ...
- windows下kafka启动时系统找不到指定的路径(受害者亲测)
我遇到这个问题一天多了,各种找办法解决,百度谷歌都用了,没用.最后还是靠自己解决了,下面讲一下我的解决办法,可能也不是所有情况都可以这样使用吧. 首先,问题描述: 然后,我的解决办法: 打开kafka ...
- Windows下使用zerotier时提示PORT_ERROR错误
ZeroTier是一款基于P2P的内网穿透工具,对于个人免费且支持最多100台设备端对端穿透,看上去很优秀.出于爱折腾的兴趣,就安装试用一下. 首先在官网注册帐号并创建一个虚拟网,得到虚拟网ID. 然 ...
- linux 查看进程变量,Linux下查看进程(程序)启动时的环境变量
Linux下查看进程(程序)启动时的环境变量 Linux的pargs ==================================== 今天又遇到一个老问题: 同事遇到了sqlplus &qu ...
- linux c 启动程序吗,Linux下C程序启动时的系统调用
写程序跟踪发现,在Linux i386中,一个程序体完全为空的C语言程序启动时要进行近100个系统调用,如下所示. [ 1]syscall: 11 //execve [ 2]syscall: 45 / ...
- 运行游戏时出现0xc000007b错误的解决方法
原文地址为: 运行游戏时出现0xc000007b错误的解决方法 如图,这个错误使无数玩家烦恼. 出现这个错误,可能是硬件的问题,也可能是软件的问题.但是,由于硬件引起该问题的概率很小,并且除了更换硬件 ...
- 电脑启动时出现0xc000014c错误怎么办?
文章来源:https://www.reneelab.com.cn/error-0xc000014c.html 目录 一.原因分析 二.解决方案 解决方案1:移除最近安装的硬件 解决方案2:引导到最后一 ...
- 比较windows phone程序启动和android程序启动原理
windows phone 程序是如何启动的了,他和android程序有什么区别,我们重点从native code 层面来分析 在windows phone 程序启动的时候是: 在XAML中使用应用程 ...
最新文章
- AI“换脸”打开潘多拉魔盒,如何应对?
- C#-DataSet和DataTable详解
- word2vec 中的数学
- find的命令的使用和文件名的后缀
- spring aop 注入源码解析 1
- opencv源码查看
- 【逻辑与计算理论】Lambda 演算——开篇
- OpenCV学习笔记:矩阵/向量处理
- oracle进程的作用,浅析Oracle10g新进程 MMON 和 MMNL的作用
- 9.Maven之(九)依赖关系
- Matlab学习笔记#01
- 教育类App原型制作分享-Busuu
- 使用moment获取本周、前n周、后n周开始结束日期以及动态计算周数
- OpenCV resize 改变图片大小,4种方式原理对比
- 超声波模块测距 Arduino代码
- D - Six Degrees of Cowvin Bacon(最小路径)
- 一周新闻纵览:工信部组织召开综合整治骚扰电话专项行动;智能锁百万指纹泄密;4G不会降速5G网速会更快
- solidworks安装教程2021
- python内建常用函数
- VR多人协同演示(2)
热门文章
- php 数据透视表,php – 使用Laravel模型过滤数据透视表数据
- c语言printf右移,C语言printf(“”)左右(转)
- linux 64 内存管理,[内存管理]linux X86_64处理器的内存布局图
- 信息通信建设工程预算定额_通信建设工程概预算
- 判断变量是空_关于“情境中的随机变量”的思考
- 肇庆计算机那个中专学校好,肇庆中专学校排名,肇庆有哪些中专学校
- html怎样使图片不占位子,复式客厅上阁楼楼梯安装什么位置不占地方 最节约空间的阁楼楼梯设计图片...
- unity 下一帧执行_理解Unity中的优化(三):协程(Coroutines)
- session每次请求都是新建的吗_每次去火车站都是提心吊胆,感觉就像进了贼窝一样,有同感的吗?...
- Struts2使用!动态方法调用无效