Interopérabilité des processus
Vous pouvez exécuter des applications Win32 sur Windows 64 bits à l’aide d’une couche d’émulation. Windows 10 sur ARM inclut une couche d’émulation x86-on-ARM64. Pour plus d’informations, consultez Exécution d’applications 32 bits.
Sur Windows 64 bits, un processus 64 bits ne peut pas charger une bibliothèque de liens dynamiques (DLL) 32 bits. En outre, un processus 32 bits ne peut pas charger une DLL 64 bits. Toutefois, Windows 64 bits prend en charge les appels de procédure distante (RPC) entre les processus 64 bits et 32 bits (sur le même ordinateur et sur les ordinateurs). Sur Windows 64 bits, un serveur COM hors processus 32 bits peut communiquer avec un client 64 bits et un serveur COM 64 bits hors processus peut communiquer avec un client 32 bits. Par conséquent, si vous disposez d’une DLL 32 bits qui n’est pas compatible COM, vous pouvez l’encapsuler dans un serveur COM hors processus et utiliser COM pour marshaler les appels vers et à partir d’un processus 64 bits.
Les serveurs in-process sont actuellement inscrits à l’aide de l’entrée de Registre inprocServer InprocServer. Sur windows 64 bits, les serveurs 64 et 32 bits in-process doivent utiliser l’entrée InprocServer32.
Pour les handles de port, qui, par leur nature, sont locaux sur l’ordinateur et ne seront jamais utilisés sur la limite 32 bits à 64 bits, utilisez le type HANDLE_PTR au lieu du type INT_PTR ou DWORD_PTR. Cela inclut le portage d’interfaces RPC qui transmettent des handles tels que valeurs DWORD. Le HANDLE_PTR 64 bits est de 64 bits sur le câble (non tronqué) et n’a donc pas besoin de mappage. (Le HANDLE_PTR 32 bits est de 32 bits sur le fil.)
Pour plus d’informations, consultez Conception d’interfaces compatibles 64 bits.