Ошибка 80040154 (исключение класса не зарегистрировано) при инициализации VCProjectEngineObject (Microsoft.VisualStudio.VCProjectEngine.dll)

Я пытаюсь запустить этот инструмент, чтобы преобразовать проект Visual C++ в make-файл. Проект, который я пытаюсь преобразовать, написан в VS2008, поэтому я использую ссылку на Microsoft.VisualStudio.VCProjectEngine.dll из версии 9.

Сбой в этой строке:

VCProjectEngine vcprojEngine = new VCProjectEngineObject();

Со следующим исключением:

Получение фабрики классов COM для компонента с CLSID {D19A00C4-A7F9-4E14-A5E1-D060B7EB57F3} не удалось из-за следующей ошибки: 80040154 Класс не зарегистрирован (исключение из HRESULT: 0x80040154 (REGDB_E_CLASSNOTREG)).

При попытке зарегистрировать VCProjectEngine.dll с regsvr32, я получил ошибку, что точка входа DllRegisterServer не была найдена.

Любая идея??

Заранее спасибо.

1 ответ

Решение

Существует не так много веских причин, по которым это может не получиться, особенно шаг regsvr32. Запустите dumpbin /exports на этой DLL. Если вы не видите DllRegisterServer, значит, у вас поврежденная установка. У него должно быть больше побочных эффектов, вы больше не сможете создавать проекты на C/C++.

Один стандартный режим отказа работает в 64-битной операционной системе. Это 32-разрядный неуправляемый код, вы действительно получите исключение "класс не зарегистрирован". Project + Properties, вкладка Build, измените Target Platform на x86.

Другие вопросы по тегам