LoadStringW 関数 (winuser.h)

指定したモジュールに関連付けられている実行可能ファイルから文字列リソースを読み込み、終端の null 文字を持つバッファーに文字列をコピーするか、文字列リソース自体への読み取り専用ポインターを返します。

構文

int LoadStringW(
  [in, optional] HINSTANCE hInstance,
  [in]           UINT      uID,
  [out]          LPWSTR    lpBuffer,
  [in]           int       cchBufferMax
);

パラメーター

[in, optional] hInstance

種類: HINSTANCE

実行可能ファイルに文字列リソースが含まれているモジュールのインスタンスへのハンドル。 アプリケーション自体へのハンドルを取得するには、NULL を指定して GetModuleHandle 関数を呼び出します。

[in] uID

型: UINT

読み込む文字列の識別子。

[out] lpBuffer

種類: LPTSTR

文字列を受け取るバッファー ( cchBufferMax が 0 以外の場合) または文字列リソース自体への読み取り専用ポインター ( cchBufferMax が 0 の場合)。 ポインターを保持するのに十分な長さ (8 バイト) である必要があります。

[in] cchBufferMax

型: int

バッファーのサイズ (文字単位)。 指定した文字数より長い場合、文字列は切り捨てられ、null で終わる。 このパラメーターが 0 の場合、 lpBuffer は文字列リソース自体への読み取り専用ポインターを受け取ります。

戻り値

型: int

関数が成功した場合、戻り値は次のいずれかになります。

  • バッファーにコピーされる文字数 ( cchBufferMax が 0 以外の場合)、終端の null 文字は含まれません。
  • lpBuffer が指す文字列リソース内の文字数 (cchBufferMax が 0 の場合)。 文字列リソースは、モジュールのリソース テーブルで null で終わることは保証されません。この値を使用して、文字列リソースが終了する場所を特定できます。
  • 文字列リソースが存在しない場合は 0。

詳細なエラー情報を得るには、GetLastError を呼び出します。

解説

0 を cchBufferMax に渡して lpBuffer パラメーター内の文字列リソースへの読み取り専用ポインターを返す場合は、戻り値の文字数を使用して文字列リソースの長さを決定します。 文字列リソースは、モジュールのリソース テーブルで null で終わる保証はありません。 ただし、リソース テーブルには null 文字を含めることができます。 文字列リソースは 16 個の文字列のブロックに格納され、ブロック内の空のスロットは null 文字で示されます。

セキュリティに関する備考

この関数を誤って使用すると、アプリケーションのセキュリティが損なわれる可能性があります。 不適切な使用には、 nBufferMax パラメーターで間違ったサイズを指定することが含まれます。 たとえば、lpBuffer が としてTCHAR szBuffer[100]宣言されているバッファー szBuffer を指している場合、sizeof(szBuffer) はバッファーのサイズをバイト単位で指定します。これにより、Unicode バージョンの関数のバッファー オーバーフローが発生する可能性があります。 バッファー オーバーフローの状況は、アプリケーションの多くのセキュリティ問題の原因です。 この場合、 または sizeof(szBuffer)/sizeof(szBuffer[0]) を使用するとsizeof(szBuffer)/sizeof(TCHAR)、バッファーの適切なサイズが得られます。

例については、「子ウィンドウの作成」を参照してください。

注意

winuser.h ヘッダーは、Unicode プリプロセッサ定数の定義に基づいて、この関数の ANSI または Unicode バージョンを自動的に選択するエイリアスとして LoadString を定義します。 encoding-neutral エイリアスの使用を encoding-neutral ではないコードと混在すると、コンパイル エラーまたはランタイム エラーが発生する不一致が発生する可能性があります。 詳細については、「 関数プロトタイプの規則」を参照してください。

要件

要件
サポートされている最小のクライアント Windows 2000 Professional [デスクトップ アプリのみ]
サポートされている最小のサーバー Windows 2000 Server [デスクトップ アプリのみ]
対象プラットフォーム Windows
ヘッダー winuser.h (Windows.h を含む)
Library User32.lib
[DLL] User32.dll

関連項目

概念

FormatMessage

LoadAccelerators

LoadBitmap

LoadCursor

LoadIcon

LoadMenu

LoadMenuIndirect

その他のリソース

リファレンス

文字列