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 字符串,并处理任何嵌入的插入序列(如果请求)。
每个插入都必须有一个相应的参数,该参数紧跟 在 lpszFormat 或 nFormatID 参数后面。 在消息文本中,支持多个用于动态设置消息格式的转义序列。 有关这些转义序列及其含义的详细信息和说明,请参阅 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 |