Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/visual-studio-2010/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ Visual studio正在跳过代码mfc++;_C++_Visual Studio 2010_Opencv - Fatal编程技术网

C++ Visual studio正在跳过代码mfc++;

C++ Visual studio正在跳过代码mfc++;,c++,visual-studio-2010,opencv,C++,Visual Studio 2010,Opencv,我正在尝试编译一个简单的函数 std::string file_name((LPCTSTR)m_file_name); file_name = "D:\\test_image.bmp"; int width = 0; _width_glo = 0; _height_glo = 0; Mat image_inp; image_inp = imread(file_name, CV_LOAD_IMAGE_COLOR); width =

我正在尝试编译一个简单的函数

std::string file_name((LPCTSTR)m_file_name);


    file_name = "D:\\test_image.bmp";

    int width = 0;
    _width_glo = 0;
    _height_glo = 0;

    Mat image_inp;
    image_inp = imread(file_name, CV_LOAD_IMAGE_COLOR);

    width = image_inp.cols;
    TRACE("trace width : %d\r\n", width);

    _width_glo = image_inp.cols;
    _height_glo = image_inp.rows;

    BYTE *inp_value_buf = change_to_BYTE(image_inp);

    if(m_data_type_selected == BMP_value)
    {
        Reverse_top_bottom(inp_value_buf);
    }
但是VisualStudio正在跳过这条线

int width = 0;
width = image_inp.cols;
并且在运行时不将宽度视为变量,同时在
\u width\u glo
height\u glo


你知道为什么代码会这样吗?谢谢。

如果您试图调试发布版本,您可能会看到当前语句箭头向前跳了几行,有时甚至向后跳。您还可能会看到变量值不正确。这是因为通常为发布版本启用的优化。

如果使用发布/优化标志编译,很可能跟踪没有实现,因此编译器只需删除
width
变量,因为它根本没有使用


\u width\u glo
\u height\u glo
中的垃圾值很可能不是Mat对象
图像\u inp
的初始化属性。请注意,未初始化变量的行为是未定义的,并且在调试和发布之间通常有所不同(根据编译器的不同,某些情况下可能会自动用零初始化变量,但在其他情况下不会)。

首先,“跳过行”是什么意思?第二,您是否在调试器中逐步完成了代码?以及“在运行时不将宽度视为变量”是什么意思?(顺便说一句:在你尝试对图像执行任何操作之前,你应该检查图像是否已成功加载。)是的,图像可能已加载,不考虑这一点,我的意思是它甚至没有为该变量分配内存,也没有在其后的变量中添加垃圾值。对不起,前面的一个。。我尝试在清除缓存后再次调试它,并且在调试时它运行良好,但是当我尝试运行发布版本时,它会给我同样的问题不要尝试调试发布版本。(你只会看到垃圾)谢谢。这是否意味着,即使存在Mat对象的值,发布版本仍然可以为我正在分配的变量显示无值或垃圾值?抱歉。。选择保罗的答案作为他的答案是第一个。再次感谢。您应该选择最好的,而不是第一个;-),我的帖子回答了你在评论保罗时提出的问题……谢谢。这是否意味着,即使存在Mat对象的值,发布版本仍然可以为我正在分配值的变量显示无值或垃圾邮件?调试器可能会显示垃圾邮件或根本不显示该值(假设没有此类已知变量)。这并不意味着该值不正确(尽管它可能因为代码中的错误而不正确)。使用日志/控制台输出/调试器输出找出真正的值。附言:接受对你最有用的答案,而不是第一个,我不是来这里做额外的+15次重复;)