DirectShow Graph :: RenderFile -> VFW_E_NOT_FOUND с перестроенным проектом - PullRequest
2 голосов
/ 27 января 2012

После того, как я переустановил VC ++ 2008 во время моей ежегодной очистки на моем компьютере, мой мультимедийный проект, который компилировался и работал без проблем, похоже, выдает странную ошибку:

Приложение в основном является медиаплеером и использует DirectShow. Я уже повторил попытку со стандартным примером MSDN «КАК ИГРАТЬ ФАЙЛ» и, по-видимому, ошибка происходит в этой строке:

hr = pGraph->RenderFile(L"C:\\TEST.avi");

hr (HRESULT) возвращает VFW_E_NOT_FOUND, и я понятия не имею, почему, поскольку там находится файл примера, я уже меняю местоположение И файл примера, но в любом случае он продолжает давать сбой.

Может ли эта ошибка произойти из-за поврежденного файла или неправильной версии файла, или я просто слишком глуп, чтобы найти ошибку? Перед переустановкой Windows я переустанавливал все приложения, которые у меня были на ПК, КРОМЕ Visual Studio C ++ 2010.

Моя конфигурация:

Windows 7 Ultimate x64 SP1

VC ++ 2008 Express

Windows 7 SDK amd64 установлен

DirectX SDK Июнь 2010 установлен

Ответы [ 2 ]

0 голосов
/ 16 февраля 2017

Только для таких, как я, которые попытаются найти ответ.

В моем случае путь был правильным.Но я все еще получал ту же ошибку VFW_E_NOT_FOUND.Я попытался открыть видеофайл с помощью медиаплеера, но тоже получил ошибку.Проблема была в отсутствующих кодеках.

Решение заключается в установке K-Lite Codec Pack .И ошибка исчезла.

0 голосов
/ 28 января 2012

Вопрос "ответил", ищите комментарий ниже вопроса ... Короче говоря:

Параметры папки -> Отметить флажок Скрыть известные расширения. Переименование файла в «TEST.avi» приводит к реальному имени: TEST.avi.avi

(TEST.avi == Test.avi.avi) == FALSE -> me.idiot = true;

На самом деле, этот вопрос может быть удален (без проблем с кодированием)!

...