Função AttachConsole
Anexa o processo de chamada ao console do processo especificado como um aplicativo cliente.
BOOL WINAPI AttachConsole(
_In_ DWORD dwProcessId
);
dwProcessId [in]
O identificador do processo cujo console deve ser usado. Esse parâmetro pode usar um dos valores a seguir.
Valor | Significado |
---|---|
pid | Use o console do processo especificado. |
ATTACH_PARENT_PROCESS (DWORD)-1 |
Use o console do pai do processo atual. |
Se a função for bem-sucedida, o valor retornado será diferente de zero.
Se a função falhar, o valor retornado será zero. Para obter informações de erro estendidas, chame GetLastError.
Um processo pode ser anexado a um console, no máximo. Se o processo de chamada já estiver conectado a um console, o código de erro retornado será ERROR_ACCESS_DENIED. Se o processo especificado não tiver um console, o código de erro retornado será ERROR_INVALID_HANDLE. Se o processo especificado não existir, o código de erro retornado será ERROR_INVALID_PARAMETER.
Um processo pode usar a função FreeConsole para se desanexar de seu console. Se outros processos compartilharem o console, o console não será destruído, mas o processo que chamou FreeConsole não poderá referenciá-lo. Consoles são fechados quando o último processo anexado a eles termina ou chama FreeConsole. Após um processo chamar FreeConsole, pode chamar a função AllocConsole para criar um novo console ou AttachConsole para se anexar a outro console.
Essa função é útil principalmente para aplicativos vinculados com /SUBSYSTEM:WINDOWS, o que implica para o sistema operacional que um console não é necessário antes de entrar no método principal do programa. Nesse caso, os identificadores padrão recuperados com GetStdHandle provavelmente serão inválidos na inicialização até a chamada de AttachConsole. A exceção é o caso em que o aplicativo é iniciado com herança de identificador por seu processo pai.
Para compilar aplicativos que usam essa função, defina _WIN32_WINNT como 0x0501
ou posterior. Para obter mais informações, consulte Usar os cabeçalhos do Windows.
Cliente mínimo com suporte | Windows XP [somente aplicativos da área de trabalho] |
Servidor mínimo com suporte | Windows Server 2003 [somente aplicativos da área de trabalho] |
Cabeçalho | ConsoleApi.h (via WinCon.h, inclui o Windows.h) |
Biblioteca | Kernel32.lib |
DLL | Kernel32.dll |