Fungsi AttachConsole
Melampirkan proses panggilan ke konsol proses yang ditentukan sebagai aplikasi klien.
Sintaks
BOOL WINAPI AttachConsole(
_In_ DWORD dwProcessId
);
Parameter
dwProcessId [in]
Pengidentifikasi proses yang konsolnya akan digunakan. Parameter ini bisa menjadi salah satu nilai berikut.
Nilai | Makna |
---|---|
pid | Gunakan konsol proses yang ditentukan. |
ATTACH_PARENT_PROCESS (DWORD)-1 |
Gunakan konsol induk proses saat ini. |
Nilai hasil
Jika fungsi berhasil, nilai yang dikembalikan bukan nol.
Jika fungsi gagal, nilai yang dikembalikan adalah nol. Untuk mendapatkan informasi kesalahan yang diperluas, hubungi GetLastError.
Keterangan
Proses dapat dilampirkan ke paling banyak satu konsol. Jika proses panggilan sudah dilampirkan ke konsol, kode kesalahan yang dikembalikan ERROR_ACCESS_DENIED. Jika proses yang ditentukan tidak memiliki konsol, kode kesalahan yang dikembalikan ERROR_INVALID_HANDLE. Jika proses yang ditentukan tidak ada, kode kesalahan yang dikembalikan ERROR_INVALID_PARAMETER.
Proses dapat menggunakan fungsi FreeConsole untuk melepaskan dirinya dari konsolnya. Jika proses lain berbagi konsol, konsol tidak dihancurkan, tetapi proses yang disebut FreeConsole tidak dapat merujuk ke konsol tersebut. Konsol ditutup ketika proses terakhir yang dilampirkan ke konsol berakhir atau memanggil FreeConsole. Setelah proses memanggil FreeConsole, ia dapat memanggil fungsi AllocConsole untuk membuat konsol baru atau AttachConsole untuk dilampirkan ke konsol lain.
Fungsi ini terutama berguna untuk aplikasi yang ditautkan dengan /SUBSYSTEM:WINDOWS, yang menyiratkan sistem operasi bahwa konsol tidak diperlukan sebelum memasuki metode utama program. Dalam hal ini, handel standar yang diambil dengan GetStdHandle kemungkinan akan tidak valid pada startup hingga AttachConsole dipanggil. Pengecualian untuk ini adalah jika aplikasi diluncurkan dengan pewarisan penanganan oleh proses induknya.
Untuk mengkompilasi aplikasi yang menggunakan fungsi ini, tentukan _WIN32_WINNT sebagai 0x0501
atau yang lebih baru. Untuk informasi selengkapnya, lihat Menggunakan Header Windows.
Persyaratan
Klien minimum yang didukung | Windows XP [hanya aplikasi desktop] |
Server minimum yang didukung | Windows Server 2003 [hanya aplikasi desktop] |
Header | ConsoleApi.h (melalui WinCon.h, sertakan Windows.h) |
Pustaka | Kernel32.lib |
DLL | Kernel32.dll |