WriteConsoleW

現在のカーソル位置からコンソール画面バッファに文字列を書き込む。

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 を参照。仮想ターミナルエスケープシーケンスが有効化されていない場合、コンソール関数で同等機能を提供できる。詳細は
SetCursorPosSetConsoleTextAttributeGetConsoleCursorInfo を参照。

情報

プラグイン / モジュール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