关于VS下的应用程序出现0xc000007b的问题以及OpenCV相关的0xc000007b问题
本文参考过其他一些文章:
http://www.cnblogs.com/csuftzzk/p/windows_launch_error_0xc000007b.html
这个问题在网上一查一大堆,主要的原因就是库文件版本的问题,比如说x64的程序引用了x86的库;网上提出了一些方法,比如说:
1)安装DirectX9修复软件;百度百科的介绍:"主要功能是检测当前系统的DirectX状态,如果发现异常则进行修复。程序主要针对0xc000007b问题设计,且包含了最新版的DirectX redist(Jun2010),并且全部DX文件都有Microsoft的数字签名。其中的标准版以及增强版都包含完整的DirectX组件。除此之外,增强版中还额外包含了c++ Redistributable Package,因此增强版不但能解决DirectX组件的问题,而且还能解决c++组件异常产生的问题。增强版适合无法自行解决c++相关问题的用户使用。在线修复版的功能与标准版相同,只是其所需的文件将通过Internet下载,因此大大减小了程序的体积。本程序的各个版本之间,主程序完全相同,只是配套使用的数据包不同。因此,当您使用标准版数据包时,程序将进行标准修复;当您使用增强版的数据包时,程序将进行增强修复;当数据包不全或没有数据包(即只有DirectX Repair.exe程序)时,程序将进行在线修复。在线修复、离线修复可自由灵活组合,充分满足不同用户的需要。"
2)下载某些库(......),放到System32目录或者SysWOW64下面;
对于我的问题,
问题(1)VS2015创建的C++控制台应用程序无法运行(在x86 debug,/MDd模式下无法运行):

于是我设置工程->属性->C/C++->代码生成->运行库->/MTd;程序就能正常运行了!查了一下:http://blog.csdn.net/zhangla1220/article/details/50033541,发现这个问题还是和库是有关的:多线程调试Dll (/MDd) 对应的是MD_DynamicDebug,多线程(/MTd)对应的是MD_StaticDebug 一个是动态链接,一个是静态链接;选择动态链接库时,出现0xc000007b问题,说明还是dll的版本问题,但是具体是哪个dll有问题呢?
这个时候,我们要用到一个软件,叫做Depends Walker;这个软件可以检测一个应用程序使用了哪些动态链接库!对于一个刚刚的这个工程:
#include <iostream>
using namespace std;
int main()
{
cout << "-------------" << endl;
getchar();
return 0;
}
在我另一台电脑的VS2015软件上选择MDd运行库,debug、x86,程序能正常运行,将debug目录下生成的*.exe文件拖到Depends Walker软件上,分析结果如下:

但是,在不能正常运行的平台下运行生成的exe文件经过depends分析,得到的是下面的结果:

所以,需要做的就是,将这些x64的库文件删除,替换成x86的版本就可以运行了!
问题(2)opencv程序中出现0xc000007b问题(其他不使用OpenCV库的简单c++控制台工程不出现0xc000007b问题的情况):
这个问题我解决的办法是修改环境变量:
一般来说:安装完opencv后会配置环境变量,配置如下两个目录:
D:\opencv_2_4_11\opencv\build\x86\vc12\bin
D:\opencv_2_4_11\opencv\build\x64\vc12\bin
这两个目录下的库文件名是一样的,因此同时配置很可能出现0xc000007b问题;比如说将x86目录配置在x64目录之前,建立的工程选择x64的解决方案平台:

这样就会出现这个问题,因为会先在x86的目录下找到dll文件。解决方法是将相应的目录提前或者删除另一个目录
关于VS下的应用程序出现0xc000007b的问题以及OpenCV相关的0xc000007b问题的更多相关文章
- VB.net 2010下关联与程序图标设置
'*************************************************************************'**模 块 名:VB.net 2010下关联与程序 ...
- 在linux命令行下执行php 程序
如何在linux命令行下,执行php程序. 例子 打印当前时间 php -r "echo time()" 随机输出一个数字 php -r "echo rand(1,20) ...
- 使用Code::blocks在windows下写网络程序
使用Code::blocks在windows下写网络程序 作者 He YiJun – storysnail<at>gmail.com 团队 ls 版权 转载请保留本声明! 本文档包含的原创 ...
- linux 下恢复后台程序的方法
一直以为这个东西不怎么重要,所以一直没怎么去记,已经第三次百度了,不想再有第四次. 如果你在终端下运行一个程序,如果这个程序正在运行,我们可以用 ctrl + z 的命令将这个程序挂到后台. desk ...
- jmeter测试本地myeclips调试状态下的tomcat程序死锁
在myeclipse调试状态下的tomcat程序,用jmeter测试,居然发生死锁,调试两天无果,直接运行tomcat而不通过myeclipse,无死锁,真是又好气又好笑..
- Windows下,通过程序设置全屏抗锯齿(多重采样)的方法
这里说的全屏抗锯齿,不是基于着色器的FXAA之类的方式,而是兼容性更好的,基于固定管线的多重采样方式. 先来说一下开发环境,我用的是VC2013+GLEW1.11. 要通过程序设置多重采样,首先需要进 ...
- JAVA设置环境变量和在DOS下运行java程序
在学校实训的这几天,老师带着我们开始深入的复习java.这是第一天的内容哦 对于“JAVA设置环境变量和在DOS下运行java程序”,许多初学者是陌生的,但了解这个却对后期的学习很重要. http:/ ...
- 闲来瞎扯 -- 在vs2008下编写linux程序
虽说vim很强大,但是个人感觉器代码提示功能不如visual assist来的强大.如何使用visual assist来实现代码的提示功能呢? 首先说明我的环境 : 宿主机是xp(O(∩_∩)O~还是 ...
- Ubuntu下QT控制台程序无法运行的解决方案以及XTerm的配置方法
Ubuntu下QT控制台程序无法运行的解决方案以及XTerm的配置方法 最近由于老师要求要在Ubuntu下QT上进程多线程服务器的开发,虽然只是单纯的调用qt的network模块,但是为了避免麻烦,我 ...
随机推荐
- SheetJS & Error: Sheet names cannot exceed 31 chars
SheetJS Error: Sheet names cannot exceed 31 chars title + version https://github.com/SheetJS/js-xlsx ...
- Spring 对数据库的支持
DAO DAO是用于访问数据的对象,大多数时候,我们将数据保存在数据库中,但这不是唯一选择. 用户也可以将数据保存在数据文件或者LDAP中 DAO屏蔽了数据操作的具体细节 Spring本质上希望能够以 ...
- [codeforces] 25E Test || hash
原题 给你三个字符串,找一个字符串(它的子串含有以上三个字符串),输出此字符串的长度. 先暴力判断是否有包含,消减需要匹配的串的数量.因为只有三个字符串,所以暴力枚举三个串的位置关系,对三个串跑好哈希 ...
- 用Spring注解的方式实现对某个网页的访问
本案例的目标是加强对@Controller @RequestMapping @Resource @Service 的感性认识,能过知道这几个注解是怎么用的,以及spring和springmvc ...
- jquerydom对象和字符串之间的转换
字符串转jquery对象:var tmp = $('<div>dd</div>').attr('id','bbq'); //用$符包裹起来即可 jquery对象转字符串: tm ...
- 有个人想上一个n级的台阶,每次只能迈1级或者迈2级台阶,问:这个人有多少种方法可以把台阶走完?
有个人想上一个n级的台阶,每次只能迈1级或者迈2级台阶,问:这个人有多少种方法可以把台阶走完? 相关问题: (1)有个人想上一个n级的台阶,每次只能迈1级或者迈2级台阶,问:这个人有多少种方法可以把台 ...
- linux日志服务之logwatch
因为logwatch默认要使用sendmail服务,所以请参考linux之发送邮件--sendmail服务配置首先设置正确sendmail服务. 安装logwatch. 查看logwatch文件在/e ...
- 优化html中mp4视频加载速度
如果使用参数faststart就会在生成完上边结构之后将moov移动到mdat前面:ffmpeg –i input.flv –c copy –f mp4 –movflags faststart out ...
- mysql 故障整理(2)
导入备份数据时报错. mysql> system mysql -uroot -p < /root/mingongge_bak.sqlEnter password: ERROR 1840 ( ...
- mysql 故障整理
mysql> system mysqldump -uroot -p -B mingongge >/root/mingongge_bak.sql Enter password: mysqld ...