繁体   English   中英

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

[英].Net COM interop with 32 and 64 bit platforms

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

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

谢谢

安迪

32 位进程将加载 32 位 COM 服务器,64 位进程将加载 64 位 COM 服务器。 换句话说,只要你在目标机器上安装了正确的 COM 服务器,你应该什么都不做才能让它正常工作。

使用 32 位 COM dll。

如果您的应用程序类型是 Web,请参考您的 32 位 COM dll 并部署应用程序。 在 IIS 中设置“启用 32 位应用程序 = TRUE”。

在 Windows 应用程序中,只需参考 32 位 dll 并使用“任何 CPU”构建应用程序。

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

它的定义将不依赖于字节顺序、字长或其他依赖于体系结构的细节。 完全有可能(对于简单的接口,甚至没有那么困难)编写一个 COM 组件,该组件符合普通 C 代码中的所有内容。

某些人(Don Box、Craig Brockschmidt,我觉得我不知何故忘记了最著名的一个……糟糕的记忆)以撰写有关 COM 如何以这种方式实现的书籍而闻名。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM