現在のカーソル位置からコンソール画面バッファに文字列を書き込む。
WriteConsoleW hConsoleOutput, lpBuffer, nNumberOfCharsToWrite, lpNumberOfCharsWritten, lpReserved
hConsoleOutput : [intptr] コンソール画面バッファのハンドル。GENERIC_WRITE アクセス権を持つ必要がある。 lpBuffer : [wstr] コンソール画面バッファに書き込む文字を含むバッファへのポインタ。WriteConsoleA では `char`、WriteConsoleW では `wchar_t` の配列であることが期待される。 nNumberOfCharsToWrite : [int] 書き込む文字数。指定文字数の合計サイズが利用可能ヒープを超えると、関数は ERROR_NOT_ENOUGH_MEMORY で失敗する。 lpNumberOfCharsWritten : [var] 実際に書き込まれた文字数を受け取る変数へのポインタ。 lpReserved : [intptr] 予約。NULL でなければならない。
(プラグイン / モジュール : kernel32.dll)
現在のカーソル位置からコンソール画面バッファに文字列を書き込む。 [戻り値] 関数が成功した場合、戻り値は 0 以外である。関数が失敗した場合、戻り値は 0 となる。拡張エラー情報を取得するには GetLastError を呼ぶ。 [備考] **WriteConsole** は現在のカーソル位置からコンソール画面バッファに文字を書き込む。文字を書き込むとカーソル位置は前進する。SetConsoleCursorPosition で現在のカーソル位置を設定する。文字はコンソール画面バッファに関連付けられた前景・背景色属性で書き込まれる。SetConsoleTextAttribute でこれらを変更する。現在の色属性とカーソル位置を判定するには GetConsoleScreenBufferInfo を使う。WriteFile の動作に影響する全入力モードは WriteConsole にも同じ影響を与える。コンソール画面バッファの出力モード取得・設定には GetConsoleMode / SetConsoleMode を使う。**WriteConsole** はファイルにリダイレクトされた標準ハンドルで使うと失敗する。多言語出力を扱うアプリケーションでは出力ハンドルがコンソールハンドルか判定し (GetConsoleMode の成否で判定可能)、コンソールハンドルなら WriteConsole を呼び、そうでなければ WriteFile を呼ぶ。Unicode プレーンテキストファイルにはバイト順マークを付与すること。アプリケーションは ANSI モードで WriteConsole を使用して ANSI 文字を書き込むことができるが、有効化されない限りコンソールは "ANSI エスケープ" や "仮想ターミナル" シーケンスをサポートしない。詳細は Console Virtual Terminal Sequences を参照。仮想ターミナルエスケープシーケンスが有効化されていない場合、コンソール関数で同等機能を提供できる。詳細は SetCursorPos、SetConsoleTextAttribute、GetConsoleCursorInfo を参照。
| プラグイン / モジュール | 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 |