Freigeben über


Prozessinteroperabilität

Sie können Win32-basierte Anwendungen unter 64-Bit-Windows mit einer Emulationsebene ausführen. Windows 10 auf ARM enthält eine x86-on-ARM64-Emulationsebene. Weitere Informationen finden Sie unter Ausführen von 32-Bit-Anwendungen.

Unter 64-Bit-Windows kann ein 64-Bit-Prozess keine 32-Bit-Dynamic Link Library (DLL) laden. Darüber hinaus kann ein 32-Bit-Prozess keine 64-Bit-DLL laden. 64-Bit-Windows unterstützt jedoch Remoteprozeduraufrufe (RPC) zwischen 64-Bit- und 32-Bit-Prozessen (sowohl auf demselben Computer als auch auf allen Computern). Unter 64-Bit-Windows kann ein out-of-process 32-Bit-COM-Server mit einem 64-Bit-Client kommunizieren, und ein out-of-process 64-Bit-COM-Server kann mit einem 32-Bit-Client kommunizieren. Wenn Sie daher über eine 32-Bit-DLL verfügen, die nicht COM-fähig ist, können Sie sie in einen OUT-of-Process-COM-Server einschließen und COM verwenden, um Aufrufe an und von einem 64-Bit-Prozess zu marshallen.

In-Process-Server werden derzeit mithilfe des Registrierungseintrags InprocServer registriert. Auf 64-Bit-Windows-, 64- und 32-Bit-In-Process-Servern sollten die InprocServer32- Eintrag verwendet werden.

Verwenden Sie zum Portieren von Handles, die auf dem Computer lokal sind und niemals über die 32-Bit-bis 64-Bit-Grenze hinweg verwendet werden, den HANDLE_PTR Typ anstelle des INT_PTR oder DWORD_PTR Typs. Dies umfasst das Portieren von RPC-Schnittstellen, die Handles wie DWORD--Werte übergeben. Die 64-Bit-HANDLE_PTR ist 64 Bit auf dem Draht (nicht abgeschnitten) und benötigt daher keine Zuordnung. (Die 32-Bit-HANDLE_PTR ist 32 Bit auf dem Draht.)

Weitere Informationen finden Sie unter Entwerfen von 64-Bit-kompatiblen Schnittstellen.