【发布时间】:2014-12-17 13:45:02
【问题描述】:
我正在尝试在按钮单击时编译一个简单的函数
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);
}
但视觉工作室正在跳过这条线
int width = 0;
width = image_inp.cols;
并且在运行时不将宽度视为变量,同时在 _width_glo 和 _height_glo 内发送垃圾值
知道为什么代码会这样吗?谢谢。
【问题讨论】:
-
首先,“跳线”是什么意思?其次,你有没有在调试器中单步调试过代码?
-
“在运行时不考虑宽度作为变量”是什么意思? (顺便说一句:在尝试对图像执行任何操作之前,您应该检查图像是否已成功加载。)
-
是的,图像可能已加载,并且不考虑我的意思是它甚至没有为该变量分配内存并将垃圾值放入变量中。
-
对不起前一个..我在清除缓存后再次尝试调试它并且在调试时运行良好但是当我尝试运行发布版本时它给了我同样的问题
-
不要尝试调试发布版本。 (你只会看到垃圾)
标签: c++ visual-studio-2010 opencv