LoadStringA 函式 (winuser.h)

從與指定模組相關聯的可執行檔載入字串資源,並將字串複製到具有終止 Null 字元的緩衝區,或傳回字串資源本身的唯讀指標。

語法

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

參數

[in, optional] hInstance

類型: HINSTANCE

模組實例的控制碼,其可執行檔包含字串資源。 若要取得應用程式本身的控制碼,請使用Null呼叫GetModuleHandle 函式

[in] uID

類型: UINT

要載入之字串的識別碼。

[out] lpBuffer

類型: LPTSTR

要接收字串的緩衝區。 大小至少必須是 cchBufferMax 字元。

[in] cchBufferMax

類型: int

緩衝區的大小,以字元為單位。 如果字串的長度超過指定的字元數,則會截斷字串,並以 Null 結束。 這個參數不能是零。

傳回值

類型: int

如果函式成功,傳回值就是複製到緩衝區中的字元數,不包括終止的 Null 字元。

如果字串資源不存在,則傳回值為零。

若要取得擴充的錯誤資訊,請呼叫 GetLastError

備註

不同于 LoadStringW 函式, LoadStringA 函式不支援傳遞 cchBufferMax的值為零。 這樣做會損毀記憶體。

安全性備註

使用此函式不正確可能會危害應用程式的安全性。 不正確的使用方式包括指定 cchBufferMax 參數中的錯誤大小。 例如,如果lpBuffer指向宣告為 TCHAR szBuffer[100] 的緩衝區szBuffer,則 sizeof (szBuffer) 提供位元組中的緩衝區大小,這可能會導致 Unicode 版本的函式緩衝區溢位。 緩衝區溢位情況是應用程式中許多安全性問題的原因。 在此情況下,使用 sizeof(szBuffer)/sizeof(TCHAR)sizeof(szBuffer)/sizeof(szBuffer[0]) 會提供緩衝區的適當大小。

範例

如需範例,請參閱 建立子視窗

注意

winuser.h 標頭會將 LoadString 定義為別名,根據 UNICODE 預處理器常數的定義,自動選取此函式的 ANSI 或 Unicode 版本。 混合使用編碼中性別名與非編碼中性的程式碼,可能會導致編譯或執行時間錯誤不符。 如需詳細資訊,請參閱 函式原型的慣例

規格需求

   
最低支援的用戶端 Windows 2000 專業版 [僅限傳統型應用程式]
最低支援的伺服器 Windows 2000 Server [僅限傳統型應用程式]
目標平台 Windows
標頭 winuser.h (包括 Windows.h)
程式庫 User32.lib
Dll User32.dll

另請參閱

概念

FormatMessage

LoadAccelerators

LoadBitmap

LoadCursor

LoadIcon

LoadMenu

LoadMenuIndirect

其他資源

參考

字串