我的问题是,当我以发布模式运行程序时,它可以构建并可以启动, 但是当涉及到写入时,就会出现访问冲突错误。但是当我以Debug模式运行程序时,不会有错误。
我做了什么:
将opencv / build / include / x64 / vc12 / bin添加到系统路径
在VC ++目录的包含目录中添加了以下文件夹
opencv / build / include
opencv / build / include / opencv
opencv / build / include / opencv2
在C / C ++->常规->包含的其他目录添加了其他第三方libs文件夹
在链接器->输入->其他依赖项添加了lib(不带d),例如:opencv_highgui2410.lib等
错误来自以下代码。
int SavePictures(IplImage* tmp_img)
{
Mat tmp_mat=cv::caarrToMat(tmp_img,false);
cv::imwrite("test.jpg",tmp_mat);
return 1;
}
每次写入时,都会出现访问冲突错误。在将调试信息添加到发布模式之后,我发现什么时候进入了imwrite,它将首先转到以下内容。
_Myt& assign(const _Elem*_ptr,size_type _Count)
{//asaign [_Ptr, _Ptr+_Count)
#if _ITERATOR_DEBUG_LEVEL==2
if(_Count!=0)
_DEBUG_PONTER(_Ptr);
#endif
if(_Inside(_Ptr))
return (assign(*this,_Ptr - this->_Myptr(),_Count));
if(_Grow(_Count))
{
_Traits::copy(this->_Myptr(),_Ptr,_Count);
_Eos(_Count);
}
return (*this);
}
,它进入_Grow if语句,然后返回。 并在下一步执行访问冲突。 有人可以给我任何建议吗?我会很感激的!
非常感谢