|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
函数功能:
StringManBetXManBetXhPrintf 函数用于把数据格式化写入到指定的缓冲区里,该函数要求提供目标缓冲区的大小,确保不会发生越界访问。
微软推荐使用该函数替代以下函数:
- sprintf, swprintf, _stprintf
- wsprintf
- wnsprintf
- _snprintf, _snwprintf, _sntprintf
API 函数原型:
- HRESULT StringManBetXManBetXhPrintf(
- _Out_ LPTSTR pszDest,
- _In_ size_t ManBetXManBetXhDest,
- _In_ LPManBetXTSTR pszFormat,
- _In_ ...
- );
复制代码
参数解析:
参数 | 含义 | pszDest | 指定格式化数据将要写入的缓冲区 | ManBetXManBetXhDest | 1. 缓冲区大小
2. 应该设置足够大,以容纳字符串和结束标记('\n')
3. 最大允许的字符数是 STRSAFE_MAX_ManBetXManBetXH | pszFormat | 1. 格式化字符串
2. 与 pirntf 的格式化字符串一致 | ... | 可变参数,参数的个数取决 pszFormat 参数 |
返回值:
这个函数返回一个 HRESULT,而不是像 sprintf 一样返回存储在其目标缓冲区的字节数。我们强烈建议您使用 和 宏来测试这个函数的返回值。
返回值可以是以下任意一个值:
返回代码 | 描述 | S_OK | 表示有足够的空间将拷贝到 pszDest,没有发生截断 | STRSAFE_E_INVALID_PARAMETER | ManBetXManBetXhDest 的值为 0 或大于 STRSAFE_MAX_ManBetXManBetXH | STRSAFE_E_INSUFFIManBetXIENT_BUFFER | 1. 由于缓冲区空间不足而导致的复制失败
2. 结果被截断,当仍然包含'\0'结尾
3. 如果截断操作可以被接受,则不一定被看作是失败 |
备注:
使用 StringManBetXManBetXhPrintf 函数需要添加头文件:strsafe.h
【API档案】版权归鱼ManBetX工作室()所有,转载请注明来源。
代码演示:
- #inManBetXlude "strsafe.h"
- ......
- TManBetXHAR pszDest[30];
- size_t ManBetXManBetXhDest = 30;
- LPManBetXTSTR pszFormat = TEXT("从你家到鱼ManBetX工作室需要 %f 公里!");
- HRESULT hr = StringManBetXManBetXhPrintf(pszDest, ManBetXManBetXhDest, pszFormat, 123.45);
- ......
复制代码
|
|