与WPF一起使用DirectShow时的偶发错误窗口

时间:2012-06-27 11:40:11

标签: c# wpf directshow directshow.net

我已经构建了一个应用程序,它可以并行显示两个直接的展示图。此应用程序使用WPF,因此我评估了不同的解决方案,如WPFMediaKit(http://wpfmediakit.codeplex.com/)和AVCapWPF(https://wpfcap.codeplex.com/)。

两种解决方案通常都能正常工作。但有时我得到一个灰色的错误窗口(看起来很像Windows 2000),其中有一些关于CPU的信息(但是旧的CPU信息,似乎实际的CPU是未知的,当设计此错误消息时)并加载了Dll,但没有完全错误信息。窗口的标题只是“错误”。

问题是偶尔发生错误,所以我不确定,我是否知道所有事件,但以下错误情况是已知的:

  1. 在构建直接显示图形时某处出现错误,导致只加载一个图形并显示
  2. 在构建两个图之前发生错误,这导致两个图都被加载并显示
  3. 错误不依赖于图表中使用的过滤器。对于渲染,框架使用不同的渲染器和切换的源过滤器,主要使用Montivision DemoSource。
  4. 我只能在渲染两个图形时产生错误,但也无法定期生成错误。

    当错误窗口关闭时,整个应用程序完成(崩溃)。在.Net中捕获错误是不可能的。它似乎来自系统库。

    错误窗口文字:

    OS:  Workstation, SP1
    CPU: GenuineIntel, Intel Pentium III Xeon, MMX @ 2490 MHz
    
    Module name: D:\[...]\bin\Debug\TestApp.exe
    
    Application data:
    VmVyc2lvbjogV2t4dGJIZHFVbTEyYkdsb0oxRmhiR3htS2xwaWUya3N
    TMlJpZW1wOVRUd3hTaU0rTXlJNE5DTTVOaVpLT3pnVkUwSXJOQzRxUE
    ... (a base64 encoded list of loaded dlls)
    

    我希望有人知道错误和避免它的好方法。

1 个答案:

答案 0 :(得分:0)

您是否尝试在干净的Windows安装上运行应用程序且没有使用Montivision等?

另外,请显示使用过的DLL列表和图表截图。