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

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. C++中include<> 与 include" " 的区别

    <>时先去系统目录中找头文件,如果没有再到当前目录下找.所以像标准的头文件 stdio.h, stdlib.h等都用<>; ""则首先到当前目录下找,如果找 ...

  2. Codeforces Round #386 (Div. 2) 746F(set的运用)

    题目大意 给出一个歌单(有n首歌),每个歌都有愉悦值和时间,你可以选择从第x首歌开始听(也就是选择连续的一段),并且你可以选择w首歌让它的时间减半,限制时间为k,求最大的愉悦值 首先我们需要贪心一下, ...

  3. 笔记:CS231n+assignment2(作业二)(三)

    终于来到了最终的大BOSS,卷积神经网络~ 这里我想还是主要关注代码的实现,具体的CNN的知识点想以后在好好写一写,CNN的代码关键就是要加上卷积层和池话层. 一.卷积层 卷积层的前向传播还是比较容易 ...

  4. HDU 5752

    Sqrt Bo Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 131072/131072 K (Java/Others)Total S ...

  5. mysql数据定期备份删除

    1.这里只写备份mysql的数据库的方法,全备份,包括定时删除. 准备工作,弄一个文件夹存数据库备份数据 第一步:编写shell 脚本,命名为shell.sh #备份数据库 backupdir=/we ...

  6. TestNG测试执行顺序

    1.preserve-order属性,之前一直认为preserve-order属性是控制配置方法的执行顺序的,其实不是,preserve-order主要是控制test下节点classes执行顺序的 例 ...

  7. java 竖线分割字符串的问题

    java 竖线分割字符串的问题 例1: String[] paraStr = "6010;320100;A".split(";"); System.out.pr ...

  8. Linux装软件

    一.rpm包安装方式步骤: 1.找到相应的软件包,比如soft.version.rpm,下载到本机某个目录: 2.打开一个终端,su -成root用户: 3.cd soft.version.rpm所在 ...

  9. [HNOI2002] 公交车路线

    题目背景 在长沙城新建的环城公路上一共有8个公交站,分别为A.B.C.D.E.F.G.H.公共汽车只能够在相邻的两个公交站之间运行,因此你从某一个公交站到另外一个公交站往往要换几次车,例如从公交站A到 ...

  10. matlab-bgl 工具包配置环境 TDM-GCC-64 mex

    Windows 64 + Matlab 64 MEX混合编程初步: http://blog.csdn.net/enjoyyl/article/details/46545263 使用的是 TDM-GCC ...