Interoperabilidade do processo

Você pode executar aplicativos baseados em Win32 no Windows de 64 bits usando uma camada de emulaçã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 DLL (biblioteca de vínculo dinâmico) 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 dá suporte a RPC (chamadas de procedimento remoto) entre processos de 64 bits e 32 bits (no mesmo computador e entre computadores). No Windows de 64 bits, um servidor COM fora do processo de 32 bits pode se comunicar com um cliente de 64 bits e um servidor COM de 64 bits fora do processo pode se comunicar com um cliente de 32 bits. Portanto, se você tiver uma DLL de 32 bits sem reconhecimento de COM, poderá encapsulá-la em um servidor COM fora do processo e usar COM para realizar marshaling de chamadas de e para um processo de 64 bits.

Os servidores em processo estão registrados no momento 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 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 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 Criando interfaces compatíveis com 64 bits.