进程互作性
可以使用仿真层在 64 位 Windows 上运行基于 Win32 的应用程序。 ARM 上的 Windows 10 包括 x86-on-ARM64 仿真层。 有关详细信息,请参阅 运行 32 位应用程序。
在 64 位 Windows 上,64 位进程无法加载 32 位动态链接库(DLL)。 此外,32 位进程无法加载 64 位 DLL。 但是,64 位 Windows 支持 64 位和 32 位进程之间的远程过程调用(无论是在同一台计算机上还是跨计算机)。 在 64 位 Windows 上,进程外 32 位 COM 服务器可以与 64 位客户端通信,进程外 64 位 COM 服务器可以与 32 位客户端通信。 因此,如果你有一个无法识别 COM 的 32 位 DLL,则可以将其包装在进程外 COM 服务器中,并使用 COM 封送对 64 位进程的调用。
进程内服务器当前使用 InprocServer 注册表项进行注册。 在 64 位 Windows 上,64 位和 32 位进程内服务器应使用 InprocServer32 条目。
若要端口句柄(它们本质上是计算机的本地位置),并且永远不会在 32 位到 64 位边界之间使用,请使用 HANDLE_PTR 类型,而不是 INT_PTR 或 DWORD_PTR 类型。 这包括移植传递此类句柄的 RPC 接口,例如 DWORD 值。 64 位 HANDLE_PTR 是线路上的 64 位(未截断),因此不需要映射。 (32 位 HANDLE_PTR 在网络上是 32 位。
有关详细信息,请参阅 设计 64 位兼容的接口。