共用方式為


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 為非零),或字串資源本身的唯讀指標(如果 cchBufferMax 為零 )。 長度必須足夠,才能保存指標(8 個字節)。

[in] cchBufferMax

類型:int

緩衝區的大小,以字元為單位。 如果字串長度超過指定的字元數,則會截斷字串,並以 Null 終止。 如果此參數為 0,則 lpBuffer 會收到字串資源本身的唯讀指標。

傳回值

類型:int

如果函式成功,傳回值為下列其中一項:

  • 複製到緩衝區的字元數(如果 cchBufferMax 為非零),但不包括終止的 Null 字元。
  • 字串資源中 lpBuffer 指向的字元數(如果 cchBufferMax 為零)。 字串資源不保證在模組的資源數據表中以 Null 終止,而且您可以使用此值來判斷字串資源結束的位置。
  • 如果字串資源不存在,則為零。

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

言論

如果您將 0 傳遞至 cchBufferMax,以傳回 lpBuffer 參數中字串資源的只讀指標,請使用傳回值中的字元數來判斷字符串資源的長度。 字串資源不保證會在模組的資源數據表中以 Null 終止。 不過,資源數據表可以包含 Null 字元。 字串資源會儲存在 16 個字串的區塊中,而區塊內的任何空白位置則以 Null 字元表示。

安全性備註

使用此函式不正確可能會危害應用程式的安全性。 不正確的使用包括在 nBufferMax 參數中指定錯誤的大小。 例如,如果 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 Professional [僅限傳統型應用程式]
支援的最低伺服器 Windows 2000 Server [僅限傳統型應用程式]
目標平臺 窗戶
標頭 winuser.h (包括 Windows.h)
連結庫 User32.lib
DLL User32.dll

另請參閱

概念

FormatMessage

LoadAccelerators

LoadBitmap

LoadCursor

LoadIcon

LoadMenu

LoadMenuIndirect

其他資源

參考

字串