Partager via


Interopérabilité des processus

Vous pouvez exécuter des applications basées sur Win32 sur Windows 64 bits à l’aide d’une couche d’émulation. Windows 10 sur ARM comprend 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 (à la fois sur le même ordinateur et sur plusieurs ordinateurs). Sur Windows 64 bits, un serveur COM 32 bits hors processus 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 avez une DLL 32 bits qui ne prend pas en charge COM, vous pouvez l’encapsuler dans un serveur COM hors processus et utiliser COM pour marshaler les appels vers et depuis un processus 64 bits.

Les serveurs in-process sont actuellement inscrits à l’aide de l’entrée de Registre InprocServer . Sur Windows 64 bits, les serveurs in-process 64 et 32 bits doivent utiliser l’entrée InprocServer32 .

Pour les handles de port, qui, de par leur nature, sont locaux sur l’ordinateur et ne seraient jamais utilisés au-delà de 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 transmettant des handles tels que des 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 câble.)

Pour plus d’informations, consultez Conception d’interfaces compatibles 64 bits.