进程互操作性

可以使用仿真层在 64 位 Windows 上运行基于 Win32 的应用程序。 ARM 上的Windows 10包括一个 x86-on-ARM64 仿真层。 有关详细信息,请参阅 运行 32 位应用程序

在 64 位 Windows 上,64 位进程无法加载 32 位动态链接库 (DLL) 。 此外,32 位进程无法加载 64 位 DLL。 但是,64 位 Windows 支持远程过程调用, (RPC) 64 位和 32 位进程 (在同一台计算机上和跨计算机) 。 在 64 位 Windows 上,进程外 32 位 COM 服务器可以与 64 位客户端通信,进程外 64 位 COM 服务器可以与 32 位客户端通信。 因此,如果你有一个无法识别 COM 的 32 位 DLL,则可以将其包装在进程外 COM 服务器中,并使用 COM 封送对 64 位进程的调用和来自 64 位进程的调用。

进程内服务器当前使用 InprocServer 注册表项注册。 在 64 位 Windows 上,64 位和 32 位进程内服务器应使用 InprocServer32 条目。

若要移植句柄(其本质上是计算机的本地句柄,永远不会跨 32 位到 64 位边界使用),请使用 HANDLE_PTR 类型,而不是 INT_PTRDWORD_PTR 类型。 这包括移植传递 DWORD 值等句柄的 RPC 接口。 64 位 HANDLE_PTR 是线路上的 64 位, (不截断) ,因此不需要映射。 (32 位 HANDLE_PTR 是线路上的 32 位。)

有关详细信息,请参阅 设计 64 位兼容接口