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

  在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参数后就正确了。

转载于:https://www.cnblogs.com/lovexz/p/4864559.html

你可能感兴趣的:(error C4996: 'swprintf': swprintf has been changed to conform with the ISO C standard,set _CRT_NON_C...)