共用方式為


CHString::FormatMessageW (UINT,...) 方法 (chstring.h)

[ CHString 類別是 WMI 提供者架構的一部分,其現在被視為最終狀態,而且不會針對影響這些連結庫的非安全性相關問題使用進一步的開發、增強功能或更新。 MI API 應該用於所有新的開發。]

FormatMessageW 方法會格式化訊息字串。

語法

void  throw(CHeap_Exception) FormatMessageW(
  UINT nFormatID,
  ...  
);

參數

nFormatID

包含未格式化消息正文的字串資源標識碼。

...

自變數清單。

傳回值

CHeap_Exception

備註

FormatMessageW 方法需要訊息定義做為輸入。 訊息定義是由 lpszFormatnFormatID 所識別的字串資源所決定。 方法會將格式化消息正文複製到 CHString 字串,並視要求處理任何內嵌插入序列。

每個插入都必須有對應的參數,後面接著 lpszFormatnFormatID 參數。 在消息正文中,支持數個逸出序列,以動態方式格式化訊息。 如需這些逸出序列及其意義的描述,請參閱 Windows FormatMessage 函式主題。

注意 若要降低安全性攻擊的風險,請一律使用 FormatMessageW 的格式字串。 例如, FormatMessageW (輸入) 是惡意探索的,而 FormatMessageW (“%s”,則輸入) 不是。 絕對不要對格式字串使用使用者提供的字串。 如果您的格式字串儲存為當地語系化等用途,請確定該字串受到保護,以防止未經授權的寫入存取。 如果您的函式寫入字串而非標準輸出,您可能需要避免在格式字串中使用尾端 「%s」。

範例

下列程式代碼範例示範如何使用 CHString::FormatMessageW

CHString str;
int nAsked = 5;
int nAgree = 4;

str.FormatMessageW(L"%1!d! of %2!d! developers agree: Golf is %3%!", 
   nAgree, nAsked, L"Best");
assert(str == L"4 of 5 developers agree: Golf is Best!");

規格需求

需求
標頭 chstring.h

另請參閱

CHString

CHString::Format