【发布时间】:2011-01-27 21:00:04
【问题描述】:
我正在尝试将 VC6 COM DLL 添加到我们的 VS2010RC C# 解决方案中。 DLL使用VC6工具编译生成x86版本,使用VC7跨平台工具编译生成VC7 DLL。
只要将使用 C# 项目的平台设置为 x86,x86 版本的程序集就可以正常工作。 DLL 的 x64 或 x86 版本是否实际注册并不重要。它适用于两者。如果平台设置为“任何 CPU”,我会在 Interop.<name>.dll 的负载上收到 BadImageFormatException。
至于 x64 版本,我什至无法构建项目。我收到 tlbimp 错误:
TlbImp:错误 TI0000:与 必须指定输入类型库。
有人看过这个问题吗?
编辑:
我对这个问题做了更多的研究,并认为这可能是一个 Visual Studio 错误。我有一个干净的解决方案。我选择了与语言无关的“任何 CPU”来引入我的 COM 程序集。生成的 Interop DLL 的进程体系结构是 x86 而不是 MSIL。
现在可能必须手动制作 Interop 才能使其正常工作。
如果有人有其他建议,请告诉我。
【问题讨论】:
标签: com visual-studio-2010 interop visual-c++-6