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

[CHString 类是 WMI 提供程序框架的一部分,现在视为处于最终状态,对于影响这些库的非安全性相关问题,将不会提供进一步的开发、增强或更新。 所有新开发均应使用 MI API。]

FormatMessageW 方法设置消息字符串的格式。

语法

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

参数

nFormatID

包含无格式消息文本的字符串资源标识符。

...

参数列表。

返回值

CHeap_Exception

注解

FormatMessageW 方法需要消息定义作为输入。 消息定义由 lpszFormat 或由 nFormatID 标识的字符串资源确定。 方法将格式化的消息文本复制到 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!");

要求

要求
Header chstring.h

另请参阅

CHString

CHString::Format