LoadStringW 関数 (winuser.h)
指定したモジュールに関連付けられている実行可能ファイルから文字列リソースを読み込み、終端の null 文字を持つバッファーに文字列をコピーするか、文字列リソース自体への読み取り専用ポインターを返します。
構文
int LoadStringW(
[in, optional] HINSTANCE hInstance,
[in] UINT uID,
[out] LPWSTR lpBuffer,
[in] int cchBufferMax
);
パラメーター
[in, optional] hInstance
型: HINSTANCE
実行可能ファイルに文字列リソースが含まれているモジュールのインスタンスへのハンドル。 アプリケーション自体へのハンドルを取得するには、GetModuleHandle 関数 NULLを使用して呼び出します。
[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
備考
cchBufferMax に 0 を渡して、lpBuffer パラメーター内の文字列リソースへの読み取り専用ポインターを返す場合は、戻り値の文字数を使用して文字列リソースの長さを決定します。 文字列リソースは、モジュールのリソース テーブルで null で終わる保証はありません。 ただし、リソース テーブルには null 文字を含めることができます。 文字列リソースは 16 個の文字列のブロックに格納され、ブロック内の空のスロットは null 文字で示されます。
セキュリティに関する備考
この関数を誤って使用すると、アプリケーションのセキュリティが損なわれる可能性があります。 不適切な使用には、nBufferMax パラメーターに間違ったサイズを指定する方法が含まれます。 たとえば、sizeof(szBuffer)/sizeof(TCHAR)
または sizeof(szBuffer)/sizeof(szBuffer[0])
を使用すると、バッファーの適切なサイズが得られます。
例
例については、「子ウィンドウの作成」 を参照してください。
手記
winuser.h ヘッダーは、Unicode プリプロセッサ定数の定義に基づいて、この関数の ANSI または Unicode バージョンを自動的に選択するエイリアスとして LoadString を定義します。 エンコードに依存しないエイリアスをエンコードに依存しないコードと組み合わせて使用すると、コンパイルエラーやランタイム エラーが発生する不一致が発生する可能性があります。 詳細については、「関数プロトタイプの 規則」を参照してください。
必要条件
要件 | 価値 |
---|---|
サポートされる最小クライアント | Windows 2000 Professional [デスクトップ アプリのみ] |
サポートされる最小サーバー | Windows 2000 Server [デスクトップ アプリのみ] |
ターゲット プラットフォーム の |
ウィンドウズ |
ヘッダー | winuser.h (Windows.h を含む) |
ライブラリ | User32.lib |
DLL | User32.dll |
関連項目
概念
LoadBitmap の
LoadIcon の
その他のリソース を
リファレンス