Udostępnij przez


Współdziałanie procesów

Aplikacje oparte na systemie Win32 można uruchamiać na 64-bitowym systemie Windows przy użyciu warstwy emulacji. System Windows 10 w usłudze ARM zawiera warstwę emulacji x86-on-ARM64. Aby uzyskać więcej informacji, zobacz Running 32-bit Applications.

W 64-bitowym systemie Windows 64-bitowy proces nie może załadować 32-bitowej biblioteki dynamic-link (DLL). Ponadto proces 32-bitowy nie może załadować 64-bitowej biblioteki DLL. Jednak 64-bitowy system Windows obsługuje zdalne wywołania procedur (RPC) między procesami 64-bitowymi i 32-bitowymi (zarówno na tym samym komputerze, jak i na komputerach). W 64-bitowym systemie Windows 32-bitowy serwer COM może komunikować się z klientem 64-bitowym, a 64-bitowy serwer COM może komunikować się z klientem 32-bitowym. W związku z tym, jeśli masz 32-bitową bibliotekę DLL, która nie obsługuje modelu COM, możesz opakowować ją na serwerze COM poza procesem i używać modelu COM do marshalingu wywołań do i z procesu 64-bitowego.

Serwery przetwarzania są obecnie rejestrowane przy użyciu wpisu rejestru InprocServer. W 64-bitowych systemach Windows, 64 i 32-bitowych serwerach przetwarzania powinien używać wpisu InprocServer3 2.

Do obsługi portów, które z ich natury są lokalne dla komputera i nigdy nie będą używane przez granicę 32-bitową do 64-bitowej, należy użyć typu HANDLE_PTR zamiast typu INT_PTR lub DWORD_PTR. Obejmuje to przenoszenie interfejsów RPC przekazujących takie dojścia, jak wartości DWORD. 64-bitowa HANDLE_PTR to 64 bity na przewodach (nie obcięte) i dlatego nie wymaga mapowania. (32-bitowy HANDLE_PTR to 32 bity na przewodzie).

Aby uzyskać więcej informacji, zobacz Projektowanie interfejsów 64-bitowych.