AttachConsole

呼び出し側プロセスを指定されたプロセスのコンソールにアタッチする 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
URLhttps://github.com/inovia/IronHSP
備考Win32 API の kernel32.dll 関数群。CsWin32 + win32metadata から自動生成。
hsp3net 専用 (intptr / NSTRUCT / wstr を使用)。
タイプ拡張命令
グループWin32API
対応環境
  • Windows 版 HSP
hs ファイルhsphelp\win32_kernel32_gen2.hs