一、背景介绍

不久前用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错误的解决方案相关推荐

  1. mysql server安装不成功,解决Mysql5.7.17在windows下安装启动时提示不成功问题

    在机器上首次安装MySQL, 操作系统是win7 mysql 的安装文件是 zip 格式的,版本是5.7.17 解压之后,安装步骤是 1.首先找个文件存放这些安装程序以及 数据 假设是E:\\mysq ...

  2. linux挂载ssd到根目录下,linux启动时挂载ssd错误

    debian启动时,挂载lenovo的ssd时会延迟一段时间,并且dmesg输出错误信息 下面是dmesg |grep ata2的输出信息 [ 0.000000] BIOS-e820: [mem 0x ...

  3. windows下kafka启动时系统找不到指定的路径(受害者亲测)

    我遇到这个问题一天多了,各种找办法解决,百度谷歌都用了,没用.最后还是靠自己解决了,下面讲一下我的解决办法,可能也不是所有情况都可以这样使用吧. 首先,问题描述: 然后,我的解决办法: 打开kafka ...

  4. Windows下使用zerotier时提示PORT_ERROR错误

    ZeroTier是一款基于P2P的内网穿透工具,对于个人免费且支持最多100台设备端对端穿透,看上去很优秀.出于爱折腾的兴趣,就安装试用一下. 首先在官网注册帐号并创建一个虚拟网,得到虚拟网ID. 然 ...

  5. linux 查看进程变量,Linux下查看进程(程序)启动时的环境变量

    Linux下查看进程(程序)启动时的环境变量 Linux的pargs ==================================== 今天又遇到一个老问题: 同事遇到了sqlplus &qu ...

  6. linux c 启动程序吗,Linux下C程序启动时的系统调用

    写程序跟踪发现,在Linux i386中,一个程序体完全为空的C语言程序启动时要进行近100个系统调用,如下所示. [ 1]syscall: 11 //execve [ 2]syscall: 45 / ...

  7. 运行游戏时出现0xc000007b错误的解决方法

    原文地址为: 运行游戏时出现0xc000007b错误的解决方法 如图,这个错误使无数玩家烦恼. 出现这个错误,可能是硬件的问题,也可能是软件的问题.但是,由于硬件引起该问题的概率很小,并且除了更换硬件 ...

  8. 电脑启动时出现0xc000014c错误怎么办?

    文章来源:https://www.reneelab.com.cn/error-0xc000014c.html 目录 一.原因分析 二.解决方案 解决方案1:移除最近安装的硬件 解决方案2:引导到最后一 ...

  9. 比较windows phone程序启动和android程序启动原理

    windows phone 程序是如何启动的了,他和android程序有什么区别,我们重点从native code 层面来分析 在windows phone 程序启动的时候是: 在XAML中使用应用程 ...

最新文章

  1. AI“换脸”打开潘多拉魔盒,如何应对?
  2. C#-DataSet和DataTable详解
  3. word2vec 中的数学
  4. find的命令的使用和文件名的后缀
  5. spring aop 注入源码解析 1
  6. opencv源码查看
  7. 【逻辑与计算理论】Lambda 演算——开篇
  8. OpenCV学习笔记:矩阵/向量处理
  9. oracle进程的作用,浅析Oracle10g新进程 MMON 和 MMNL的作用
  10. 9.Maven之(九)依赖关系
  11. Matlab学习笔记#01
  12. 教育类App原型制作分享-Busuu
  13. 使用moment获取本周、前n周、后n周开始结束日期以及动态计算周数
  14. OpenCV resize 改变图片大小,4种方式原理对比
  15. 超声波模块测距 Arduino代码
  16. D - Six Degrees of Cowvin Bacon(最小路径)
  17. 一周新闻纵览:工信部组织召开综合整治骚扰电话专项行动;智能锁百万指纹泄密;4G不会降速5G网速会更快
  18. solidworks安装教程2021
  19. python内建常用函数
  20. VR多人协同演示(2)

热门文章

  1. php 数据透视表,php – 使用Laravel模型过滤数据透视表数据
  2. c语言printf右移,C语言printf(“”)左右(转)
  3. linux 64 内存管理,[内存管理]linux X86_64处理器的内存布局图
  4. 信息通信建设工程预算定额_通信建设工程概预算
  5. 判断变量是空_关于“情境中的随机变量”的思考
  6. 肇庆计算机那个中专学校好,肇庆中专学校排名,肇庆有哪些中专学校
  7. html怎样使图片不占位子,复式客厅上阁楼楼梯安装什么位置不占地方 最节约空间的阁楼楼梯设计图片...
  8. unity 下一帧执行_理解Unity中的优化(三):协程(Coroutines)
  9. session每次请求都是新建的吗_每次去火车站都是提心吊胆,感觉就像进了贼窝一样,有同感的吗?...
  10. Struts2使用!动态方法调用无效