Подтвердить что ты не робот

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

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

В этой строке это не работает:

VCProjectEngine vcprojEngine = new VCProjectEngineObject();

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

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

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

Любая идея?

Спасибо заранее.

4b9b3361

Ответ 1

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

Один стандартный режим отказа работает в 64-разрядной операционной системе. Это 32-разрядный неуправляемый код, вы действительно получите исключение "class not registered". Project + Properties, вкладка "Сборка", изменить платформу "Цель" на x86.