Interoperabilità dei processi

È possibile eseguire applicazioni basate su Win32 in Windows a 64 bit usando un livello di emulazione. Windows 10 in ARM include un livello di emulazione x86-on-ARM64. Per altre informazioni, vedere Esecuzione di applicazioni a 32 bit.

In Windows a 64 bit, un processo a 64 bit non può caricare una libreria di collegamento dinamico (DLL) a 32 bit. Inoltre, un processo a 32 bit non può caricare una DLL a 64 bit. Tuttavia, Windows a 64 bit supporta chiamate rpc (Remote Procedure Call) tra processi a 64 bit e a 32 bit (sia nello stesso computer che in tutti i computer). In Windows a 64 bit, un server COM out-of-process a 32 bit può comunicare con un client a 64 bit e un server COM out-of-process a 64 bit può comunicare con un client a 32 bit. Pertanto, se si dispone di una DLL a 32 bit che non è compatibile con COM, è possibile eseguirne il wrapping in un server COM out-of-process e usare COM per effettuare il marshalling delle chiamate a e da un processo a 64 bit.

I server in-process sono attualmente registrati usando la voce del Registro di sistema InprocServer . Nei server windows a 64 bit, 64 e a 32 bit in-process devono usare la voce InprocServer32 .

Per gli handle di porta, che per loro natura sono locali nel computer e non verrebbero mai usati attraverso il limite a 32 bit a 64 bit, usare il tipo di HANDLE_PTR anziché il tipo INT_PTR o DWORD_PTR . Ciò include la conversione di interfacce RPC che passano handle come valori DWORD . Il HANDLE_PTR a 64 bit è a 64 bit sul filo (non troncato) e quindi non richiede il mapping. Il HANDLE_PTR a 32 bit è a 32 bit sul filo.

Per altre informazioni, vedere Progettazione di interfacce compatibili a 64 bit.