次の方法で共有


LoadStringA 関数 (winuser.h)

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

構文

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

パラメーター

[in, optional] hInstance

型: HINSTANCE

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

[in] uID

型: UINT

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

[out] lpBuffer

型: LPTSTR

文字列を受信するバッファー。 cchBufferMax 文字 以上のサイズにする必要があります。

[in] cchBufferMax

型: int

バッファーのサイズ (文字数)。 文字列が指定された文字数より長い場合、文字列は切り捨てられ、null で終わる。 このパラメーターは 0 にすることはできません。

戻り値

型: int

関数が成功した場合、戻り値はバッファーにコピーされた文字数であり、終端の null 文字は含まれません。

文字列リソースが存在しない場合、戻り値は 0 です。

拡張エラー情報を取得するには、GetLastError呼び出します。

備考

LoadStringW 関数とは異なり、LoadStringA 関数では、cchBufferMax0 の値を渡すことがサポートされていません。 これにより、メモリが破損します。

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

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

関連項目

概念

FormatMessage

LoadAccelerators

LoadBitmap の

LoadCursor

LoadIcon の

LoadMenu

LoadMenuIndirect

その他のリソース を する

リファレンス

文字列の