Partilhar via


Interoperabilidade de processos

Você pode executar aplicativos baseados em Win32 no Windows de 64 bits usando uma camada de emulação. O Windows 10 no ARM inclui uma camada de emulação x86-on-ARM64. Para obter mais informações, consulte executando aplicativos de 32 bits.

No Windows de 64 bits, um processo de 64 bits não pode carregar uma biblioteca de vínculo dinâmico (DLL) de 32 bits. Além disso, um processo de 32 bits não pode carregar uma DLL de 64 bits. No entanto, o Windows de 64 bits suporta chamadas de procedimento remoto (RPC) entre processos de 64 bits e 32 bits (no mesmo computador e entre computadores). No Windows de 64 bits, um servidor COM de 32 bits fora de processo pode se comunicar com um cliente de 64 bits e um servidor COM de 64 bits fora de processo pode se comunicar com um cliente de 32 bits. Portanto, se você tiver uma DLL de 32 bits que não reconhece COM, poderá envolvê-la em um servidor COM fora de processo e usar COM para organizar chamadas de e para um processo de 64 bits.

Atualmente, os servidores em processo estão registrados usando a entrada do Registro InprocServer. No Windows de 64 bits, os servidores em processo de 64 e 32 bits devem usar a entrada InprocServer32.

Para portar identificadores, que por sua natureza são locais para o computador e nunca seriam usados no limite de 32 bits a 64 bits, use o tipo HANDLE_PTR em vez do tipo INT_PTR ou DWORD_PTR. Isso inclui a portabilidade de interfaces RPC passando identificadores como valores de DWORD. O HANDLE_PTR de 64 bits é de 64 bits no fio (não truncado) e, portanto, não precisa de mapeamento. (O HANDLE_PTR de 32 bits é de 32 bits no fio.)

Para obter mais informações, consulte Designing 64-bit-Compatible Interfaces.