StringCchPrintf

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

相關詞條

熱門詞條

聯絡我們