|
COM 技术包括进程内和进程外组件。32 位和 64 位组件无法混合。使 32 位和 64 位代码交互的唯一方式是通过进程间通信。Windows 64 位支持 64 位和 32 位进程(在同一台计算机上或跨多台计算机)之间的远程过程调用(Remote Procedure Calls,RPC)。以下是用于在 32 位和 64 位应用程序之间进行通信的技术: 针对命名对象(例如,Mutex 和 Semaphore)的句柄和文件句柄可以共享。
针对窗口的句柄 (HWND) 可以共享。
可以使用 IPC/RPC。
可以使用 COM 本地服务器。
如果内容不依赖于指针,则可以使用共享内存。
对于进程外组件而言,32 位 COM 服务器可以与 64 位客户端通信,而进程外 64 位 COM 服务器可以与 32 位客户端通信。因此,如果 32 位 DLL 不识别 COM,则开发人员可以将它包装到一个进程外 COM 服务器中,并使用 COM 封送处理对 64 位进程的调用。将 COM+ 迁移到 64 位很简单。COM+ 可以在 Windows 64 位上安装并使用,不会有任何问题。组件服务仍然可用,而且开发人员可以自由地使用任何语言来创建 COM+ 对象。
|