34

我正在尝试运行工具,以便将 Visual C++ 项目转换为 makefile。我正在尝试转换项目的项目是用 VS2008 编写的,因此我使用的是版本 9 中对 Microsoft.VisualStudio.VCProjectEngine.dll 的引用。

它在这一行失败:

VCProjectEngine vcprojEngine = new VCProjectEngineObject();

除了以下情况:

由于以下错误,检索具有 CLSID {D19A00C4-A7F9-4E14-A5E1-D060B7EB57F3} 的组件的 COM 类工厂失败:80040154 未注册类(HRESULT 异常:0x80040154 (REGDB_E_CLASSNOTREG))。

当尝试使用 regsvr32 注册 VCProjectEngine.dll 时,我收到一个错误,即找不到入口点 DllRegisterServer。

任何想法??

提前致谢。

4

1 回答 1

66

失败的原因并不多,尤其是 regsvr32 步骤。在该 dll 上运行 dumpbin /exports。如果您没有看到 DllRegisterServer,那么您的安装已损坏。它应该有更多的副作用,您将无法再构建 C/C++ 项目。

一种标准故障模式是在 64 位操作系统上运行它。这是 32 位非托管代码,您确实会得到“类未注册”异常。项目 + 属性,构建选项卡,将平台目标更改为 x86。

于 2010-10-26T08:29:26.337 回答