我正在尝试运行this工具以将Visual C ++项目转换为makefile。 我正在尝试转换项目的项目是用VS2008编写的,所以我在版本9中使用了对Microsoft.VisualStudio.VCProjectEngine.dll的引用。
这行失败了:
VCProjectEngine vcprojEngine = new VCProjectEngineObject();
有以下例外:
检索COM类工厂 具有CLSID的组件 {D19A00C4-A7F9-4E14-A5E1-D060B7EB57F3} 由于以下错误而失败: 80040154类未注册 (HRESULT的例外情况:0x80040154 (REGDB_E_CLASSNOTREG))。
当尝试使用regsvr32注册VCProjectEngine.dll时,出现错误,指出找不到入口点DllRegisterServer。
任何想法??
提前致谢。
答案 0 :(得分:65)
这种失败的原因并不多,尤其是regsvr32步骤。在该DLL上运行dumpbin / exports。如果您没有看到DllRegisterServer,那么您的安装已损坏。它应该有更多的副作用,你将无法再构建C / C ++项目。
一种标准故障模式是在64位操作系统上运行。这是32位非托管代码,你确实会得到'class not registered'异常。 Project + Properties,Build选项卡,将Platform Target更改为x86。