Ошибка 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.