我写了一个简单的测试尝试从dll传递Mat,dll部分是这样的:
namespace testerDll {
cv::Mat getmat()
{
cv::VideoCapture capture(0);
static cv::Mat im;
capture >> im;
//cout<<"get image"<<endl;
//imshow("test",im);
return im;
}
int testfun()
{
return 1;
}
}
我在另一个项目中使用这个dll,代码是这样的:
cv::Mat im = testerDll::getmat();
int i = testerDll::testfun();
cout<<i<<endl;
while(true)
{
imshow("im",im);
int k = cv::waitKey(20);
if(k>0)
break;
}
运行时,imshow()函数导致&#34; AccessViolationException&#34;错误, 我从dll尝试了另一个函数testfun(),它运行正常。
我试图在互联网上搜索解决方案,但找不到任何可以的解决方案 解决这个...... 我对C ++很新,所以这可能是一个愚蠢的错误......
有人可以帮我这个吗?