0

如前所述,当我尝试从相机获取帧时,我收到了 VSFilter.dll 的 0xC0000005 读取访问冲突错误。我尝试了在网上和 OpenCV 文档中找到的不同示例代码,但仍然出现错误。例如,这是我现在使用的代码:

#include <opencv/cv.h>
#include <opencv/highgui.h>

using namespace cv;

int main(int, char**)
{
    VideoCapture cap(0);

    if(!cap.isOpened()) return -1;

    Mat frame;

    namedWindow("Camera",1);

    while(1)
    {
        cap >> frame;
                
        imshow("Camera", frame);

        if(waitKey(30) >= 0) break;
    }

    return 0;
}

并且在输出中有这两个错误(第一次机会例外和未处理的例外,对意大利人感到抱歉):

Eccezione first-chance in 0x000007FEEB115791 (VSFilter.dll) in OpenCV.exe: 0xC0000005: violazione di accesso durante la scrittura del percorso 0x000000000468E000.
Eccezione non gestita in 0x000007FEEB115791 (VSFilter.dll) in OpenCV.exe: 0xC0000005: violazione di accesso durante la scrittura del percorso 0x000000000468E000.

所以代码很简单,应该不是问题,我想知道为什么错误与 VSFilter.dll(DirectShow/VirtualDub/Avisynth 的 VobSub 和 TextSub 过滤器)有关?

我正在使用 OpenCV 2.4.5 和 VisulaStudio 2012。


解决了

我已经下载了 VSFilter.dll 并替换了 Windows/system32/ 中的原始文件,现在一切正常!

4

1 回答 1

1

有没有机会,你最终进入了“dll地狱”?

喜欢:

  1. 将发布代码与调试 dll 链接(或相反)
  2. 将 32 位代码与 64 位 dll 链接(或相反)
  3. 将 vc9 代码与 vc10 dll 链接起来(.. 我希望你现在明白了)
于 2013-05-08T21:06:31.680 回答