Visual Studio调试器失败,但程序运行时运行良好......?

时间:2012-08-03 09:57:24

标签: c++ visual-studio-2010 visual-studio-debugging

我正在研究一个立体差异程序,我有左右图像,我正在尝试读取。但是我在尝试调试时遇到错误,但如果我只是构建它就可以正常工作。 ..所以我把代码简化为非常简单的......

#include <bunch of opencv bits...>

using namespace std;
using namespace cv;

int main()
{
    Mat Left= imread("Left.png", 0);    //read images as grayscale
    Mat Right= imread("Right.png", 0);

    while (true) {
        imshow("Left",Left);
        imshow("Right",Right);
    }

}

使用debug(F5)运行我到了行imshow(“Left”,Left);它崩溃,报道 OpenCV错误:错误标志(参数或结构字段)(无法识别或不支持的数组类型)....等等等等等等

单步执行代码我可以看到没有任何内容被读取存储在

然而,如果我只是构建程序(F7)并从资源管理器运行.exe(Misc Projects \ SteroExp \ Debug)......那么事情变得非常令人困惑....它运行完全正常。

我的想法...... VS是否在未存储图像的PC上的某个不同临时目录中运行调试版本?

我正在使用... W7 64位,VS2010,C ++,OpenCV 2.3.1

2 个答案:

答案 0 :(得分:1)

问题是当前的工作目录。当你从资源管理器运行时,当前目录是'Misc Projects \ SteroExp \ Debug',但是当你来自调试器时,它是'Misc Projects \ SteroExp'。答案是将图像文件移动到正确的目录。

答案 1 :(得分:1)

首先,仔细检查 Project |中的工作目录属性|调试&gt; WorkingDirectory 设置为包含这两个文件的目录。