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

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

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

語法

void  throw(CHeap_Exception) FormatMessageW(
  LPCWSTR lpszFormat,
  ...     
);

參數

lpszFormat

正式控件字串的指標。 系統會掃描控件字串以取得插入並據以格式化。 格式字串類似於運行時間函式 printf 樣式格式字串,不同之處在於 printf 允許以任意順序插入參數。

...

自變數清單。

傳回值

CHeap_Exception

備註

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

每個插入都必須有對應的參數,後面接著 lpszFormatnFormatID 參數。 在消息正文中,動態格式化訊息支持數個逸出序列。 如需這些逸出序列及其意義的詳細資訊和描述,請參閱 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