相关疑难解决方法(0)

Visual Studio 2010 64位COM互操作问题

我正在尝试将VC6 COM DLL添加到我们的VS2010RC C#解决方案中.使用VC6工具编译DLL以创建x86版本,并使用VC7跨平台工具编译以生成VC7 DLL.

只要消耗C#项目的平台设置为x86,组件的x86版本就可以正常工作.DLL的x64或x86版本是否实际注册无关紧要.它适用于两者.如果平台设置为"任何CPU",我会收到一个BadImageFormatException负载Interop.<name>.dll.

至于x64版本,我甚至无法构建项目.我收到tlbimp错误:

TlbImp:错误TI0000:必须指定与输入类型库兼容的单个有效机器类型.

有没有人见过这个问题?

编辑:

我已经做了很多深入研究这个问题,并认为这可能是一个Visual Studio错误.我有一个干净的解决方案.我引入了我的COM程序集,选择了与语言无关的"任何CPU".生成的Interop DLL的过程体系结构是x86而不是MSIL.

可能必须手工制作Interop才能使其工作.

如果有人有其他建议,请告诉我.

com interop visual-c++-6 visual-studio-2010

16
推荐指数
1
解决办法
2万
查看次数

标签 统计

com ×1

interop ×1

visual-c++-6 ×1

visual-studio-2010 ×1