IsDBCSLeadByte

指定した文字がシステム既定の Windows ANSI コードページ (CP_ACP) でリード バイトとなるかを判定する。リード バイトとは、コードページのダブルバイト文字セット (DBCS) において 2 バイト文字の先頭バイトである。

IsDBCSLeadByte TestChar

TestChar : [int] テストする文字。

(プラグイン / モジュール : kernel32.dll)

解説

指定した文字がシステム既定の Windows ANSI コードページ (CP_ACP) でリード バイトとなるかを判定する。リード
バイトとは、コードページのダブルバイト文字セット (DBCS) において 2 バイト文字の先頭バイトである。

[戻り値]
テスト文字がリード バイトになりうる場合は 0 以外の値を返す。リード バイトでない、または 1 バイト文字の場合は 0
を返す。拡張エラー情報を取得するには、アプリケーションから GetLastError を呼ぶ。

[備考]
注意: この関数はトレール バイトの存在や有効性を検証しない。そのため、IsDBCSLeadByte を使うアプリケーションがリード
バイトとして報告したシーケンスを MultiByteToWideChar が認識しないことがある。アプリケーションは
MultiByteToWideChar
の結果と容易にずれてしまい、予期しないエラーやバッファサイズ不一致の原因となりうる。一般的には、コードページ
データの低レベル操作を試みる代わりに、アプリケーションは MultiByteToWideChar でデータを UTF-16
に変換しそのエンコーディングで処理するべきである。リード バイト値は DBCS ごとに固有である。同じコードページ内で、ある 1
バイト値が DBCS 文字のリード バイトにもトレール バイトにもなることがある。DBCS
文字列を正しく解釈するには、アプリケーションは通常文字列の先頭から前方にスキャンし、リード
バイトを見つけたら次のバイトを同じ文字の末尾として扱う。戻る必要がある場合は、自前のアルゴリズムを作らず CharPrev
を使うべきである。

情報

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