[英].Net COM interop with 32 and 64 bit platforms
我正在使用第三方 COM 组件,供应商提供了 32 位和 64 位版本。 我想为“任何 cpu”构建我的 .NET 应用程序,如果进程是 32 位,则让它调用 32 位 COM 组件,或者在 64 位模式下调用 64 位组件。
谁能指出我任何有用的资源来描述这个过程是如何工作的? 如果我注册了正确的 COM 组件,它会不会发生魔法?
谢谢
安迪
这可能很有用: 使用并排程序集加载 DLL 的 x64 或 x32 版本
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.