Ошибка 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 не найдена.
Любая идея?
Спасибо заранее.
Ответы
Ответ 1
Не так много веских причин, по которым это не удастся, особенно шаг regsvr32. Запустите dumpbin/exports в этой DLL. Если вы не видите DllRegisterServer, у вас есть коррумпированная установка. Он должен иметь больше побочных эффектов, вы больше не сможете создавать проекты на C/С++.
Один стандартный режим отказа работает в 64-разрядной операционной системе. Это 32-разрядный неуправляемый код, вы действительно получите исключение "class not registered". Project + Properties, вкладка "Сборка", изменить платформу "Цель" на x86.