Freigeben über


Prozessinteroperabilität

Sie können Win32-basierte Anwendungen unter 64-Bit-Windows mithilfe 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-DLL (Dynamic Link Library) 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 computerübergreifend). 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 also über eine 32-Bit-DLL verfügen, die nicht COM-fähig ist, können Sie sie in einen out-of-Process-COM-Server umschließen und COM verwenden, um Aufrufe an und aus einem 64-Bit-Prozess zu marshallen.

Prozessinterne Server werden derzeit mithilfe des Registrierungseintrags InprocServer registriert. Unter 64-Bit-Windows sollten 64- und 32-Bit-Prozessserver den Eintrag InprocServer32 verwenden.

Verwenden Sie zum Portieren von Handles, die ihrer Natur nach lokal für den Computer sind und niemals über die 32-Bit- bis 64-Bit-Grenze verwendet werden, den HANDLE_PTR Typ anstelle des INT_PTR - oder DWORD_PTR-Typs . Dies umfasst das Portieren von RPC-Schnittstellen, die Z. B. 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 beträgt 32 Bits auf der Leitung.)

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