Interprocessar comunicação entre aplicativos de 32 bits e 64 bits
As técnicas a seguir podem ser usadas para comunicação entre aplicativos de 32 bits e 64 bits:
- As versões de 64 bits do Windows usam identificadores de 32 bits para interoperabilidade. Ao compartilhar um identificador entre aplicativos de 32 bits e 64 bits, somente os 32 bits inferiores são significativos, portanto, é seguro truncar o identificador (ao passá-lo de 64 bits para 32 bits) ou estender o identificador (ao passá-lo de 32 bits para 64 bits). Os identificadores que podem ser compartilhados incluem identificadores para objetos de usuário, como janelas (HWND), identificadores para objetos GDI, como canetas e pincéis ( HBRUSH e HPEN), e identificadores para objetos nomeados, como mutexes, semáforos e identificadores de arquivo.
- Chamadas de procedimento remoto (RPC) podem ser usadas.
- O COM LocalServers poderá ser usado se as DLLs de proxy/stub de 32 bits e 64 bits estiverem registradas para todas as interfaces usadas.
- A memória compartilhada poderá ser usada se os tipos dependentes de ponteiro forem convertidos corretamente (ou evitados).
- As funçõesCreateProcess eShellExecute podem iniciar processos de 32 bits e 64 bits de processos de 32 ou 64 bits com determinadas limitações.
Um arquivo executável de 64 bits localizado em %windir%\System32 não pode ser iniciado a partir de um processo de 32 bits, porque o redirecionador do sistema de arquivos redireciona o caminho. Não desabilite o redirecionamento para fazer isso; em vez disso, use %windir%\Sysnative. Para obter mais informações, consulte do Redirecionador do Sistema de Arquivos.