4

我知道以前有人问过这个问题。但我需要一个真正的答案,一个真正的解释!当运行 (ctrl+F5) 下面显示的代码时,在 Visual Studio 2012 Express 中,在Release 模式下,一切正常。在调试模式下运行它时,我得到:

程序无法启动,因为您的计算机中缺少 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;
}
4

3 回答 3

1

按设计。不允许您重新分发调试模式可执行文件。顾名思义,它们是用于调试的,而不是用于发布的。

于 2013-09-23T07:12:40.907 回答
1

使用编译器选项更改运行时库对我有用("Configuration Properties"/"C/C++"/"Code Generation"。在标记为Runtime Library的项目中,为发布版本选择Multi Threaded (/MT)和Multi Threaded调试版本的调试 (/MTd))。我确实必须同时进行调试和发布才能使发布工作。不知道为什么。

注意:我是在 Windows 7 上使用 VC2010 Express 版本来编译的。我在旧的 XP 机器上进行了测试。另一个注意事项: http: //msdn.microsoft.com/en-us/library/2kzt1wy3 (v=vs.100).aspx 上的 MS 信息

于 2013-09-23T06:02:56.793 回答
-2

我遇到了同样的错误,并尝试了几天在互联网上可以找到的所有解决方案,但我最终设法自己修复了它。

如果您使用的是 Windows 7,请尝试重新安装操作系统。由于我使用的是 Win 8,因此我刚刚刷新了我的计算机,并且再也没有收到该错误。一旦你的代码工作了,别忘了创建一个还原点以防万一:)

请注意,如果您刷新计算机,则必须安装所有程序,但您的所有个人文件仍然存在。

于 2015-03-28T14:14:39.520 回答