Biblioteki C/C++
AllocConsole
[funkcja] Tworzy nową konsolę dla procesu.Składnia
#include <windows.h>
BOOL WINAPI AllocConsole( void );
Zwracana wartość
Zwraca wartość różną od zera w przypadku sukcesu. W przeciwnym wypadku funkcja zwraca wartość 0.
Aby uzyskać rozszerzone informacje o błędzie, wywołaj funkcję
GetLastError.
Opis szczegółowy
Do procesu może być podłączona tylko jedna konsola na raz więc wywołanie niniejszej funkcji nie powiedzie się jeżeli dany proces jest już powiązany z konsolą. Proces może odłączyć aktualnie używaną konsolę przy pomocy funkcji
FreeConsole. Wówczas możliwe będzie ponowne wywołanie funkcji
AllocConsole bądź
AttachConsole.
Dodatkowe informacje
Jeżeli proces utworzy proces potomny (dziecko), to utworzony proces odziedziczy nową konsolę.
Funkcja
AllocConsole inicjalizuje uchwyty standardowego wejścia, standardowego wyjścia oraz standardowego strumienia błędu dla tworzonej konsoli. Standardowy uchwyt wejściowy jest uchwytem do bufora wejściowego konsoli. Standardowy uchwyt wyjściowy oraz uchwyt strumienia błędów są uchwytami wskazującymi na bufor ekranu konsoli. Aby pobrać te uchwyty należy użyć funkcji
GetStdHandle.
Ta funkcja jest głównie używana przez aplikacje posiadające interfejs graficzny w celu utworzenia okna konsoli. Aplikacje GUI są inicjalizowane bez okna konsoli. Aplikacje konsolowe są inicjalizowane z konsolą chyba, że są utworzone jako odizolowane procesy przy pomocy funkcji
CreateProcess z flagą
DETACHED_PROCESS.
Wymagania
Przykład
#include <windows.h>
int main()
{
if( AllocConsole() )
MessageBoxA( NULL, "Utworzono konsolę", "Sukces", MB_ICONINFORMATION );
else
MessageBoxA( NULL, "Proces posiada już konsolę", "Błąd", MB_ICONEXCLAMATION );
return 0;
}
Zagadnienia powiązane
FreeConsole | Odłącza konsolę od aktualnego procesu. (funkcja) |
---|
AttachConsole | Podłącza się do istniejącej konsoli innego procesu. (funkcja) |
---|
Linki zewnętrzne
Wszystkie teksty są chronione prawami autorskimi. Kopiowanie lub rozpowszechnianie treści poza niniejszym serwisem
jest zabronione.
Powyższe ograniczenie nie dotyczy autora opracowania, któremu przysługuje prawo do rozpowszechniania własnego tekstu wedle własnego uznania.