StringCchPrintf是sprintf的一個替代品,它接受一個格式字元串和參數列表和返回一個格式化字元串。
基本介紹
- 中文名:StringCchPrintf
- 聲明:HRESULT StringCchPrintf
- pszDest:指向目標記憶體
- cchDest:記憶體區大小
簡介,聲明,參數,pszDest,cchDest,pszFormat,其他···,注意,結果,實例,相關函式,
簡介
StringCchPrintf是sprintf的一個替代品。它接受一個格式字元串和參數列表和返回一個格式化字元串。提供檢查功能,確保不越界訪問。
聲明
HRESULT StringCchPrintf( LPTSTR pszDest, size_t cchDest, LPCTSTR pszFormat, ...);
參數
pszDest
指向目標記憶體
cchDest
記憶體區大小。應該足夠大,以容納字元串和結束標記。最大允許的字元數是STRSAFE_MAX_CCH
pszFormat
指向一個緩衝區,其中包含一個printf風格的格式字元串。
其他···
同printf
注意
這個函式返回一個HRESULT,而不是像sprintf一樣返回存儲在其目標緩衝區的位元組數。我們強烈建議您使用SUCCEEDED和FAILED宏來測試這個函式的返回值。
結果
S_OKThere表示記憶體足夠用
STRSAFE_E_INVALID_PARAMETERTheb表示cchDest的值是0或大於STRSAFE_MAX_CCH。 STRSAFE_E_INSUFFICIENT_BUFFERThe複製操作失敗,原因是沒有足夠的緩衝空間。目的地緩衝區是結果的一部分。截斷是可接受的情況,這可能不一定被視為失敗。
實例
TCHARpszDest[30];size_tcchDest=30;LPCTSTRpszFormat=TEXT("%s%d+%d=%d.");TCHAR*pszTxt=TEXT("Theansweris");HRESULThr=StringCchPrintf(pszDest,cchDest,pszFormat,pszTxt,1,2,3);//TheresultantstringatpszDestis"Theansweris1+2=3."TCHARpszDest[30];size_tcchDest=30;LPCTSTRpszFormat=TEXT("%s%d+%d=%d.");TCHAR*pszTxt=TEXT("Theansweris");HRESULThr=StringCchPrintf(pszDest,cchDest,pszFormat,pszTxt,1,2,3);//TheresultantstringatpszDestis"Theansweris1+2=3."
Function Information
strsafe.hstrsafe.lib
相關函式
StringCbPrintf, StringCchPrintfEx, StringCchVPrintf