Compartir a través de


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, vea Ejecutar 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 todos los equipos). En Windows de 64 bits, un servidor COM de 32 bits fuera de proceso 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 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 portar identificadores, 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 de INT_PTR o DWORD_PTR. Esto incluye la portabilidad de interfaces RPC que pasan identificadores como valores de DWORD. El HANDLE_PTR de 64 bits es de 64 bits en el cable (no truncado) y, por 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, vea Diseño de interfaces compatibles con 64 bits.