打开CV,C ++:“错误:应用程序无法正确启动(0x0000005)。”

时间:2013-10-09 09:35:01

标签: c++ opencv

我最近开始研究OpenCV并配置了OpenCV和MingW。我正在使用Windows 7操作系统。我没有在我的程序中使用任何IDE。但我仍然对我现在正在进行的程序感到满意。

我编写了第一个程序并且编译成功但是当我运行.exe文件时,它给出了一个应用程序错误: The application was unable to start correctly (0x0000005). Click OK to close the application.

以下是我写的代码:

#include "cstdlib"
#include "iostream"
#include "opencv2/highgui/highgui.hpp"

using namespace std; 

using namespace cv;

int main() 
{

    Mat img = imread("v.jpg", CV_LOAD_IMAGE_COLOR); 
    if (img.empty()) 
    {
        cout << "Error: Image cannot be loaded...!!" << endl;
        system("pause"); //wait for a key press
        return -1;
    }
    namedWindow("MyWindow", CV_WINDOW_AUTOSIZE);
    imshow("MyWindow", img); 
    waitKey(0); 
    destroyWindow("MyWindow"); 

    return 0;
}

为了执行,我写了一个批处理文件,如下所示并执行它::

g++ -I"D:\opencv\opencv\build\include" -L"D:\opencv\opencv\build\x86\mingw\lib" ImageTest1.cpp -lopencv_core246 -lopencv_highgui246 -o ImageTest1.exe
ImageTest1.exe 
pause

我还在系统路径::

中添加了以下内容
D:\MingW\bin;;D:\MingW\msys\1.0\bin;;D:\OpenCV\opencv\build\x64\mingw\bin;;

我尝试将x64更改为x86。但那没用。

编辑:我以管理员身份执行了.exe,并说The application was unable to start correctly (0xc000007b). Click OK to close the application

2 个答案:

答案 0 :(得分:4)

我不相信您已准确报告错误代码。我不相信错误代码只包含7个十六进制数字。它包含8.我相信你错过了第一个数字,我打赌是c。在这种情况下,错误消息确实是:

The application was unable to start correctly (0xc0000005).

现在,该代码是NT状态代码STATUS_ACCESS_VIOLATION。当系统告诉您应用程序无法启动时,这意味着错误发生在加载程序的代码中。换句话说,您的代码甚至尚未开始运行。错误将发生在您的一个从属DLL的DllMain函数中。

很可能在加载的不同DLL之间存在一些不兼容性。为了进一步调试,您可能需要调试加载过程。首先在配置文件模式下运行Dependency Walker,找出哪个模块DllMain正在引发异常。希望Dependency Walker能够指出你的依赖库中存在的不匹配。

答案 1 :(得分:0)

将系统导入放在<>括号中。这适用于<cstdio><iostream>

编辑:我误读了错误代码。请忽略我的其余答案。

似乎Windows无法在启动时找到库。

我的假设基于0x7B错误。