我正在为我的论文尝试OpenCV库。我已经应用了http://opencv-srf.blogspot.com/2013/05/installing-configuring-opencv-with-vs.html给出的步骤。我的问题是,在成功构建之后,我真的认为代码应该可以正常运行。请告诉我问题。谢谢 :)

码:

#include "stdafx.h"
#include "opencv2/highgui/highgui.hpp"
#include <iostream>

using namespace cv;
using namespace std;

int main( int argc, const char** argv )
{
     Mat img(500, 1000, CV_8UC3, Scalar(0,0, 100)); //create an image ( 3 channels, 8 bit image depth, 500 high, 1000 wide, (0, 0, 100) assigned for Blue, Green and Red plane respectively. )

     if (img.empty()) //check whether the image is loaded or not
     {
          cout << "Error : Image cannot be loaded..!!" << endl;
          //system("pause"); //wait for a key press
          return -1;
     }

     namedWindow("MyWindow", CV_WINDOW_AUTOSIZE); //create a window with the name "MyWindow"
     imshow("MyWindow", img); //display the image which is stored in the 'img' in the "MyWindow" window

     waitKey(0);  //wait infinite time for a keypress

     destroyWindow("MyWindow"); //destroy the window with the name, "MyWindow"

     return 0;
}

建立:
1> ------开始构建:项目:ConsoleApplication1,配置:调试Win32 ------
1> ConsoleApplication1.cpp
1> ConsoleApplication1.vcxproj-> D:\ Visual Studio \ Projects \ Project2 \ new \ ConsoleApplication1 \ Debug \ ConsoleApplication1.exe
==========构建:1成功,0失败,0最新,跳过0 ==========

调试:
'ConsoleApplication1.exe'(Win32):已加载'D:\ Visual Studio \ Projects \ Project2 \ new \ ConsoleApplication1 \ Debug \ ConsoleApplication1.exe'。符号已加载。
'ConsoleApplication1.exe'(Win32):已加载'C:\ Windows \ SysWOW64 \ ntdll.dll'。符号已加载。
'ConsoleApplication1.exe'(Win32):已加载'C:\ Windows \ SysWOW64 \ kernel32.dll'。符号已加载。
'ConsoleApplication1.exe'(Win32):已加载'C:\ Windows \ SysWOW64 \ KernelBase.dll'。符号已加载。
程序“[4136] ConsoleApplication1.exe”已退出,代码为-1073741701(0xc000007b)。

最佳答案

NTSTATUS 0xC000007B 代码为STATUS_INVALID_IMAGE_FORMAT。您的程序很可能是32位的,正在尝试加载64个DLL。考虑到您提到的是OpenCV,我怀疑这是OpenCV DLL的根源。

解决方案:

  • 确保您的进程找到DLL的32位版本。
  • 将您的项目切换到目标64位。
  • 07-28 13:58