从dll返回Mat,得到AccessViolationException错误

时间:2016-03-30 10:00:54

标签: c++ opencv dll

我写了一个简单的测试尝试从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 ++很新,所以这可能是一个愚蠢的错误......

有人可以帮我这个吗?

0 个答案:

没有答案