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!");

要求

要求
Header chstring.h

另请参阅

CHString

CHString::Format