WPF Webcam组件在.NET 4.0下崩溃

时间:2010-07-15 21:47:06

标签: .net wpf .net-4.0 webcam wpf-4.0

我有一个来自Codeplex的WPF网络摄像头组件的源代码,我正试图从.NET 3.5移植到.NET 4.0。

在两个目标下编译都很好,但在.NET 4.0版本中,当在此方法中System.Runtime.InteropServices.SEHException (0x80004005): External component has thrown an exception行使用moniker.BindToObject(bindCtx, null, ref filterId, out filterObject);运行应用时,它会崩溃:

internal static IBaseFilter CreateFilter(string filterMoniker)
        {
            object filterObject = null;
            IBindCtx bindCtx = null;
            IMoniker moniker = null;

            int n = 0;

            if (CreateBindCtx(0, out bindCtx) == 0)
            {
                if (MkParseDisplayName(bindCtx, filterMoniker, ref n, out moniker) == 0)
                {
                    Guid filterId = typeof(IBaseFilter).GUID;
                    try
                    {
                        moniker.BindToObject(bindCtx, null, ref filterId, out filterObject);
                    }
                    catch (Exception ex)
                    {
                        MessageBox.Show(ex+"");
                    }

                    Marshal.ReleaseComObject(moniker);
                }
                Marshal.ReleaseComObject(bindCtx);
            }
            return filterObject as IBaseFilter;
        }

知道为什么以及如何解决它?

相机是Genius Eye 110,我在Windows XP SP2下工作。

1 个答案:

答案 0 :(得分:0)

我下载了代码,用4.0编译它,它对我有用。你确定你有一个系统知道的网络摄像头吗?也许您可以检查设备管理器进行验证。

如果我的相机没有插上,程序会抛出与你类似的异常。

-Matt