呼び出し側プロセスを指定されたプロセスのコンソールにアタッチする AttachConsole 関数に関するリファレンス情報を参照のこと。
AttachConsole dwProcessId
dwProcessId : [int] 使用するコンソールを所有するプロセスの識別子。このパラメータには以下のいずれかの値が指定できる。 | 値 | 意味 | |-|-| | *pid* | 指定プロセスのコンソールを使う。 | | **ATTACH\_PARENT\_PROCESS** `(DWORD)-1` | 現在のプロセスの親のコンソールを使う。 |
(プラグイン / モジュール : kernel32.dll)
呼び出し側プロセスを指定されたプロセスのコンソールにアタッチする AttachConsole 関数に関するリファレンス情報を参照のこと。 [戻り値] 関数が成功した場合、戻り値はゼロ以外。関数が失敗した場合、戻り値はゼロ。拡張エラー情報を取得するには [**GetLastError**](/windows/win32/api/errhandlingapi/nf-errhandlingapi-getlasterror) を呼ぶ。 [備考] プロセスは最大 1 つのコンソールにしかアタッチできない。呼び出し側プロセスが既にコンソールにアタッチされている場合、返されるエラーコードは **ERROR\_ACCESS\_DENIED** である。指定プロセスがコンソールを持たない場合は **ERROR\_INVALID\_HANDLE** が返る。指定プロセスが存在しない場合は **ERROR\_INVALID\_PARAMETER** が返る。プロセスは [**FreeConsole**](freeconsole.md) を使って自身をコンソールから切り離せる。他のプロセスがコンソールを共有している場合、コンソールは破棄されないが、**FreeConsole** を呼んだプロセスはそれを参照できなくなる。コンソールは、アタッチされている最後のプロセスが終了したり **FreeConsole** を呼んだときに閉じられる。プロセスが **FreeConsole** を呼んだ後、[**AllocConsole**](allocconsole.md) で新しいコンソールを作成したり、**AttachConsole** で別のコンソールにアタッチしたりできる。この関数は、主に [**/SUBSYSTEM:WINDOWS**](/cpp/build/reference/subsystem-specify-subsystem) でリンクされたアプリケーションにとって有用である。これは OS に対してプログラムのメインメソッドに入る前にコンソールが不要であることを示唆する。その場合、[**GetStdHandle**](getstdhandle.md) で取得される標準ハンドルは **AttachConsole** が呼ばれるまでは起動時には無効である可能性が高い。例外として、親プロセスがハンドル継承でアプリケーションを起動した場合を除く。この関数を使用するアプリケーションをコンパイルするには、**\_WIN32\_WINNT** を `0x0501` 以降として定義する。詳細は [Using the Windows Headers](/windows/win32/winprog/using-the-windows-headers) を参照。
| プラグイン / モジュール | kernel32.dll |
| バージョン | 1.0 |
| 作成日 | 2026/04/16 |
| 著作者 | IronHSP / CsWin32 bridge |
| URL | https://github.com/inovia/IronHSP |
| 備考 | Win32 API の kernel32.dll 関数群。CsWin32 + win32metadata から自動生成。
hsp3net 専用 (intptr / NSTRUCT / wstr を使用)。 |
| タイプ | 拡張命令 |
| グループ | Win32API |
| 対応環境 |
|
| hs ファイル | hsphelp\win32_kernel32_gen2.hs |