2010-10-26 1 views
31

Я пытаюсь запустить инструмент this, чтобы преобразовать проект Visual C++ в makefile. Проект Я пытаюсь преобразовать проект написано в VS2008, поэтому я использую ссылку на Microsoft.VisualStudio.VCProjectEngine.dll с версии 9.Ошибка 80040154 (Класс незарегистрированного исключения) при инициализации VCProjectEngineObject (Microsoft.VisualStudio.VCProjectEngine.dll)

Он терпит неудачу в этой строке:

VCProjectEngine vcprojEngine = new VCProjectEngineObject(); 

за исключением следующего:

Retrieving the COM class factory for component with CLSID {D19A00C4-A7F9-4E14-A5E1-D060B7EB57F3} failed due to the following error: 80040154 Class not registered (Exception from HRESULT: 0x80040154 (REGDB_E_CLASSNOTREG)).

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

Любая идея ??

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

ответ

61

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

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

+8

Проблемная платформа x86 была проблемой. Спасибо! – rkellerm

+2

Просто столкнулся с проблемой 64 бит. Бесконечно благодарен! – jacknad

+0

@ Hans Passant больше не думает об этом? Я создаю платформу x86, но все еще получаю сообщение об ошибке для взаимодействия VB6 COM. Мой сборщик - сервер Widows 2008 R2 –

Смежные вопросы