Funzione AttachConsole
Collega il processo chiamante alla console del processo specificato come applicazione client.
BOOL WINAPI AttachConsole(
_In_ DWORD dwProcessId
);
dwProcessId [in]
Identificatore del processo la cui console deve essere utilizzata. Questo parametro può avere uno dei valori seguenti.
Valore | Significato |
---|---|
pid | Usare la console del processo specificato. |
ATTACH_PARENT_PROCESS (DWORD)-1 |
Usare la console dell'elemento padre del processo corrente. |
Se la funzione ha esito positivo, il valore restituito è diverso da zero.
Se la funzione ha esito negativo, il valore restituito è zero. Per informazioni dettagliate sull'errore, chiamare GetLastError.
Un processo può essere collegato al massimo a una console. Se il processo chiamante è già collegato a una console, il codice di errore restituito viene ERROR_ACCESS_DENIED. Se il processo specificato non dispone di una console, il codice di errore restituito viene ERROR_INVALID_HANDLE. Se il processo specificato non esiste, il codice di errore restituito viene ERROR_INVALID_PARAMETER.
Un processo può usare la funzione FreeConsole per scollegarsi dalla console. Se altri processi condividono la console, la console non viene eliminata definitivamente, ma il processo chiamato FreeConsole non può farvi riferimento. Una console viene chiusa quando l'ultimo processo collegato termina o chiama FreeConsole. Dopo che un processo chiama FreeConsole, può chiamare la funzione AllocConsole per creare una nuova console o AttachConsole da collegare a un'altra console.
Questa funzione è particolarmente utile per le applicazioni collegate a /SUBSYSTEM:WINDOWS, che implica al sistema operativo che una console non è necessaria prima di immettere il metodo principale del programma. In tale istanza, gli handle standard recuperati con GetStdHandle probabilmente non saranno validi all'avvio fino a quando non viene chiamato AttachConsole. L'eccezione è se l'applicazione viene avviata con l'ereditarietà dell'handle dal processo padre.
Per compilare un'applicazione che usa questa funzione, definire _WIN32_WINNT come 0x0501
o versione successiva. Per altre informazioni, vedere Uso delle intestazioni di Windows.
Client minimo supportato | Windows XP [solo app desktop] |
Server minimo supportato | Windows Server 2003 [solo app desktop] |
Intestazione | ConsoleApi.h (tramite WinCon.h, con Windows.h) |
Library | Kernel32.lib |
DLL | Kernel32.dll |