简介
StringCchPrintf是sprintf的一个替代品,它接受一个格式字符串和参数列表和返回一个格式化字符串。
声明
HRESULT StringCchPrintf(
LPTSTR pszDest,
size_t cchDest,
LPCTSTR pszFormat,
...
);
需要包含的头文件
strsafe.h
参数
pszDest
指向目标内存
cchDest
内存区大小。应该足够大,以容纳字符串和结束标记。最大允许的字符数是STRSAFE_MAX_CCH
pszFormat
指向一个缓冲区,其中包含一个printf风格的格式字符串。
其他···
同printf
返回值
S_OKThere表示内存足够用
STRSAFE_E_INVALID_PARAMETERTheb表示cchDest的值是0或大于STRSAFE_MAX_CCH。 STRSAFE_E_INSUFFICIENT_BUFFERThe复制操作失败,原因是没有足够的缓冲空间。目的地缓冲区是结果的一部分。截断是可接受的情况,这可能不一定被视为失败。
注意
这个函数返回一个HRESULT,而不是像sprintf一样返回存储在其目标缓冲区的字节数。我们强烈建议您使用SUCCEEDED和FAILED宏来测试这个函数的返回值。
StringCchPrintf是按字符算,StringCbPrintf是按字节算。
样列说明
if (SUCCEEDED(StringCchPrintf(g_szFilePath, MAX_PATH, ofn.lpstrFile))){
return TRUE;
}else{
return FALSE;
}