1
var m_FilterGraph = (IFilterGraph2)new FilterGraph(); 
int hr = m_FilterGraph.AddSourceFilter(file, "Ds.NET FileFilter", out capFilter); 

Когда мой проект x64 он будет бросать System.Runtime.InteropServices.COMException (0x80040241): Фильтр источника для этого файла не может быть загружен. С x86 все в порядке.Исключение с исходным фильтром DirectShow (0x80040241)

Это код C#, но проблема присутствует в каждом приложении x64, которое мне нужно для построения графиков ds. примеры: https://code.google.com/p/graph-studio-next/ http://www.codeproject.com/Articles/21105/DSGraphEdit-A-Reasonable-Facsimile-of-Microsoft-s

Когда я построить график вручную (.. Бывший источник файла асинхронной -> LavSplitter -> некоторые декодер -> Enhanced Video Рендер) он работает. Так что это скорее системная проблема, чем код, но x64 видеоплееры, которые у меня есть, работают нормально o.O, поэтому я не знаю ... Может быть, у кого-то есть идея, что может быть неправильно?

ответ

2

32 и 64-разрядные среды имеют собственный набор фильтров. Они начинаются с аналогичных фондовых фильтров, а затем вы устанавливаете дополнительные фильтры для 32-разрядных, 64-битных или обоих. Когда у вас установлен 32-битный фильтр и нет соответствующего 64-битного фильтра, то у вас есть ситуация, о которой идет речь: Win32 отлично работает, x64 не работает. Установите отсутствующие 64-разрядные фильтры, чтобы разрешить их.

+0

Могу ли я проверить, какие фильтры необходимы? Потому что, как я сказал, я могу сделать правильный график, чтобы играть файлы - от руки ... только когда я спрашиваю автобулью о графике, есть проблема ... – 4rch0n

+0

Вы можете, конечно, проверить, используя 64-битную версию GraphEdit или аналогичный. –

+0

64-битный график вручную: http://i.imgur.com/zA5U7t4.png, 64-битный график с открытым медиа-файлом: http://i.imgur.com/FT3C5xf.png. так как я могу проверить, почему это не работает? – 4rch0n