我知道之前曾问过这个问题。但我需要一个真正的答案,一个真正的解释! 运行(ctrl + F5)下面显示的代码,在Visual Studio 2012 Express中,在发布模式中,一切正常。在调试模式中运行时,我得到:
该程序无法启动,因为MSVCP100.dll错过了您的计算机...
我已经安装了Redistributable Package 2010和2012.
发生什么事了?请详细说明,我能理解:)非常感谢!!!
#include "stdafx.h"
#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <iostream>
using namespace cv;
using namespace std;
int main( int argc, char** argv )
{
Mat image = imread("Bild.jpg");
namedWindow("Mein Bild");
imshow("Mein Bild", image);
waitKey(5000);
//The member variable data is in fact a pointer to the allocated memory block that will contain
//the image data. It is simply set to 0 when no image has been read.
if(!image.data)
{
cout<<"No image has been createt"<<endl;
}
cout<<"height = " << image.size().height <<"\t width = "<< image.size().width<<endl;
//page 27
return 1;
}
答案 0 :(得分:2)
按设计。您不能重新分发调试模式可执行文件。顾名思义,它们用于调试,而不是发布。
答案 1 :(得分:1)
使用编译器选项更改为我工作的运行时库(“配置属性”/“C / C ++”/“代码生成”。在标记为运行时库的项目中strong>,为发布版本选择多线程(/ MT),为调试版本选择多线程调试(/ MTd)。我必须同时执行调试和发布以使发布工作。不知道为什么。
注意:我在Windows 7上使用VC2010 Express版本进行编译。我在旧的XP机上测试过。另一个注释:http://msdn.microsoft.com/en-us/library/2kzt1wy3(v=vs.100).aspx
的MS信息答案 2 :(得分:-1)
我得到了同样的错误,并且尝试了我可以在互联网上找到的所有解决方案,但我终于自己解决了这个问题。
如果您使用的是Windows 7,请尝试重新安装操作系统。由于我使用的是Win 8,我只是refreshed my computer并且再也没有收到错误。一旦你的代码工作,不要忘记create a restore point以防万一:)
请注意,如果您刷新计算机,则必须安装所有程序,但所有个人文件仍然存在。