Сбой компонента веб-камеры WPF в .NET 4.0 - PullRequest
0 голосов
/ 16 июля 2010

У меня есть исходный код компонента веб-камеры WPF из Codeplex , который я пытаюсь перенести с .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 голосов
/ 20 июля 2010

Я скачал код, скомпилировал его с 4.0, и он работал для меня. Вы уверены, что у вас есть веб-камера, о которой знает ваша система? Возможно, вы можете проверить диспетчер устройств для проверки.

Если моя камера не подключена, программа выдает исключение, подобное вашей.

Матф

...