error C4996: 'swprintf': swprintf has been changed to conform with the ISO C standard,set _CRT_NON_CONFORMING_SWPRINT


  在VS2013上運行一個簡單程序時,出現了error C4996: 'swprintf': swprintf has been changed to conform with the ISO C standard, adding an extra character count parameter. To use traditional Microsoft swprintf, set _CRT_NON_CONFORMING_SWPRINTFS.的錯誤。由錯誤信息可以知道swprintf函數的問題,在MSDN上查詢得到該函數的申明

int swprintf(
   wchar_t *buffer,
   size_t count,
   const wchar_t *format [,
   argument]...
);

且有下面這段話:

swprintf 符合 ISO C 標准,需要 size_t 類型的第二個參數,即count。 若要強制進行早期非標准行為,請定義_CRT_NON_CONFORMING_SWPRINTFS。 在將來的版本中,舊行為可能移除,因此,應更改代碼以使用新的一致性行為。

 

在原來出錯語句:swprintf(szTip, _T("計時:%d"), i);

修改為:swprintf(szTip, 100,_T("計時:%d"), i);

即添加了count參數后就正確了。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM