Share via


Interoperabilidad de procesos

Puede ejecutar aplicaciones basadas en Win32 en Windows de 64 bits mediante una capa de emulación. Windows 10 en ARM incluye una capa de emulación x86 on-ARM64. Para obtener más información, consulte Ejecución de aplicaciones de 32 bits.

En Windows de 64 bits, un proceso de 64 bits no puede cargar una biblioteca de vínculos dinámicos (DLL) de 32 bits. Además, un proceso de 32 bits no puede cargar un archivo DLL de 64 bits. Sin embargo, Windows de 64 bits admite llamadas a procedimientos remotos (RPC) entre procesos de 64 y 32 bits (tanto en el mismo equipo como en los equipos). En Windows de 64 bits, un servidor COM fuera de proceso de 32 bits puede comunicarse con un cliente de 64 bits y un servidor COM de 64 bits fuera de proceso puede comunicarse con un cliente de 32 bits. Por lo tanto, si tiene un archivo DLL de 32 bits que no es compatible con COM, puede encapsularlo en un servidor COM fuera de proceso y usar COM para serializar las llamadas a y desde un proceso de 64 bits.

Los servidores en proceso se registran actualmente mediante la entrada del Registro InprocServer . En windows de 64 bits, los servidores de 64 y 32 bits en proceso deben usar la entrada InprocServer32 .

Para los controladores de puerto, que por su naturaleza son locales para el equipo y nunca se usarían en el límite de 32 bits a 64 bits, use el tipo de HANDLE_PTR en lugar del tipo INT_PTR o DWORD_PTR . Esto incluye la portabilidad de interfaces RPC que pasan identificadores como valores DWORD . El HANDLE_PTR de 64 bits es de 64 bits en el cable (no truncado) y, por lo tanto, no necesita asignación. (El HANDLE_PTR de 32 bits es de 32 bits en la conexión).

Para obtener más información, consulte Diseño de interfaces compatibles con 64 bits.