zoukankan      html  css  js  c++  java
  • 关于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_11opencvuildx86vc12in

    D:opencv_2_4_11opencvuildx64vc12in

    这两个目录下的库文件名是一样的,因此同时配置很可能出现0xc000007b问题;比如说将x86目录配置在x64目录之前,建立的工程选择x64的解决方案平台:

    这样就会出现这个问题,因为会先在x86的目录下找到dll文件。解决方法是将相应的目录提前或者删除另一个目录

  • 相关阅读:
    IDEA连接Spark集群执行Scala程序
    win10安装mysql,及重装
    python生产和消费kafka数据
    protobuf 协议浅析
    操作系统-第十三章-I/O系统
    操作系统-第十二章-大容量存储结构
    操作系统-第十一章-文件系统的实现
    JSONP跨域提交请求
    标识多个物体并返回物体中心坐标方法的实现
    SkyWalking Agent端日志插件的编写历程与使用说明
  • 原文地址:https://www.cnblogs.com/h2zZhou/p/8526605.html
Copyright © 2011-2022 走看看