.Net COM与32位和64位平台互操作

时间:2011-06-08 10:06:22

标签: c# .net interop com-interop 32bit-64bit

我使用的是第三方COM组件,供应商提供了32位和64位版本。我想为“任何cpu”构建我的.NET应用程序,并且如果进程是32位,则调用32位COM组件,或者在64位模式下调用64位组件。

有人能指出任何有用的资源来描述这个过程是如何运作的吗?如果我注册了正确的COM组件,它是否会通过魔法发生?

由于

安迪

4 个答案:

答案 0 :(得分:1)

答案 1 :(得分:1)

32位进程将加载32位COM服务器,64位进程将加载64位COM服务器。换句话说,只要您在目标计算机上安装正确的COM服务器,就必须完全不需要为此工作。

答案 2 :(得分:0)

AFAICT COM(一直是)二进制标准接口。

它的定义不依赖于字节排序,字大小或其他依赖于体系结构的细节。完全可能(对于简单的接口而言,甚至是困难的)编写符合普通C代码中所有内容的COM组件。

某些个人(Don Box,Craig Brockschmidt,我有一种感觉,我在某种程度上忘记了最知名的一个......糟糕的记忆),因为编写关于如何以这种方式实现COM的书而闻名。 / p>

如果您需要任何确认,可以确认MIDL的输出不依赖于您的平台特性

答案 3 :(得分:0)

使用32位COM dll。

如果您的应用程序类型是Web,请参阅您的32位COM dll并部署该应用程序。 在IIS Set中'启用32位应用程序= TRUE。

在Windows应用程序中,只需引用32位dll并使用“Any CPU”构建应用程序。