本文参考过其他一些文章:

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问题的更多相关文章

  1. VB.net 2010下关联与程序图标设置

    '*************************************************************************'**模 块 名:VB.net 2010下关联与程序 ...

  2. 在linux命令行下执行php 程序

    如何在linux命令行下,执行php程序. 例子 打印当前时间 php -r "echo time()" 随机输出一个数字 php -r "echo rand(1,20) ...

  3. 使用Code::blocks在windows下写网络程序

    使用Code::blocks在windows下写网络程序 作者 He YiJun – storysnail<at>gmail.com 团队 ls 版权 转载请保留本声明! 本文档包含的原创 ...

  4. linux 下恢复后台程序的方法

    一直以为这个东西不怎么重要,所以一直没怎么去记,已经第三次百度了,不想再有第四次. 如果你在终端下运行一个程序,如果这个程序正在运行,我们可以用 ctrl + z 的命令将这个程序挂到后台. desk ...

  5. jmeter测试本地myeclips调试状态下的tomcat程序死锁

    在myeclipse调试状态下的tomcat程序,用jmeter测试,居然发生死锁,调试两天无果,直接运行tomcat而不通过myeclipse,无死锁,真是又好气又好笑..

  6. Windows下,通过程序设置全屏抗锯齿(多重采样)的方法

    这里说的全屏抗锯齿,不是基于着色器的FXAA之类的方式,而是兼容性更好的,基于固定管线的多重采样方式. 先来说一下开发环境,我用的是VC2013+GLEW1.11. 要通过程序设置多重采样,首先需要进 ...

  7. JAVA设置环境变量和在DOS下运行java程序

    在学校实训的这几天,老师带着我们开始深入的复习java.这是第一天的内容哦 对于“JAVA设置环境变量和在DOS下运行java程序”,许多初学者是陌生的,但了解这个却对后期的学习很重要. http:/ ...

  8. 闲来瞎扯 -- 在vs2008下编写linux程序

    虽说vim很强大,但是个人感觉器代码提示功能不如visual assist来的强大.如何使用visual assist来实现代码的提示功能呢? 首先说明我的环境 : 宿主机是xp(O(∩_∩)O~还是 ...

  9. Ubuntu下QT控制台程序无法运行的解决方案以及XTerm的配置方法

    Ubuntu下QT控制台程序无法运行的解决方案以及XTerm的配置方法 最近由于老师要求要在Ubuntu下QT上进程多线程服务器的开发,虽然只是单纯的调用qt的network模块,但是为了避免麻烦,我 ...

随机推荐

  1. SheetJS & Error: Sheet names cannot exceed 31 chars

    SheetJS Error: Sheet names cannot exceed 31 chars title + version https://github.com/SheetJS/js-xlsx ...

  2. Spring 对数据库的支持

    DAO DAO是用于访问数据的对象,大多数时候,我们将数据保存在数据库中,但这不是唯一选择. 用户也可以将数据保存在数据文件或者LDAP中 DAO屏蔽了数据操作的具体细节 Spring本质上希望能够以 ...

  3. [codeforces] 25E Test || hash

    原题 给你三个字符串,找一个字符串(它的子串含有以上三个字符串),输出此字符串的长度. 先暴力判断是否有包含,消减需要匹配的串的数量.因为只有三个字符串,所以暴力枚举三个串的位置关系,对三个串跑好哈希 ...

  4. 用Spring注解的方式实现对某个网页的访问

    本案例的目标是加强对@Controller   @RequestMapping  @Resource  @Service 的感性认识,能过知道这几个注解是怎么用的,以及spring和springmvc ...

  5. jquerydom对象和字符串之间的转换

    字符串转jquery对象:var tmp = $('<div>dd</div>').attr('id','bbq'); //用$符包裹起来即可 jquery对象转字符串: tm ...

  6. 有个人想上一个n级的台阶,每次只能迈1级或者迈2级台阶,问:这个人有多少种方法可以把台阶走完?

    有个人想上一个n级的台阶,每次只能迈1级或者迈2级台阶,问:这个人有多少种方法可以把台阶走完? 相关问题: (1)有个人想上一个n级的台阶,每次只能迈1级或者迈2级台阶,问:这个人有多少种方法可以把台 ...

  7. linux日志服务之logwatch

    因为logwatch默认要使用sendmail服务,所以请参考linux之发送邮件--sendmail服务配置首先设置正确sendmail服务. 安装logwatch. 查看logwatch文件在/e ...

  8. 优化html中mp4视频加载速度

    如果使用参数faststart就会在生成完上边结构之后将moov移动到mdat前面:ffmpeg –i input.flv –c copy –f mp4 –movflags faststart out ...

  9. mysql 故障整理(2)

    导入备份数据时报错. mysql> system mysql -uroot -p < /root/mingongge_bak.sqlEnter password: ERROR 1840 ( ...

  10. mysql 故障整理

    mysql> system mysqldump -uroot -p -B mingongge >/root/mingongge_bak.sql Enter password: mysqld ...