为什么Visual Studio 2013在C4996上出错?

Nik*_*lai 51 c++ visual-studio visual-studio-2013

在以前版本的Visual Studio中,使用_sleep或strncpy等函数只会输出警告.在最新版本中,突然出现错误:

意外的错误

错误C4996:'_sleep':此函数或变量已被更新的库或操作系统功能取代.考虑使用Sleep.详细信息请参见在线帮助.

我知道我可以通过添加#pragma warning(disable: 4996)代码的开头来禁用它,但是VS试图强迫我使用其他功能是非常烦人的.有没有办法禁用这种行为?

在你问之前,"将警告视为错误"被禁用,即使我关闭所有警告也会出错!

Nik*_*lai 70

显然,新项目现在默认启用"SDK检查",将这些警告视为错误.要禁用它,请转到项目属性 - >配置属性 - > C/C++ - >常规 - > SDL检查 - >否.

  • 禁用SDL检查并未修复我遇到的一些已弃用的Windows API函数的警告,如[`GetVersionEx`](http://msdn.microsoft.com/en-us/library/windows/desktop/ms724451.aspx) .不得不禁用警告4996专门解决这些问题. (2认同)

小智 9

在程序开头输入:

#pragma warning(disable : 4996)
Run Code Online (Sandbox Code Playgroud)

就是这样.

  • 这已经在 2013 年 OP 的问题中提到过。不知道这如何成为 2018 年的答案 (3认同)

Pet*_*eng 5

您还可以在C / C ++>高级>禁用特定警告中禁用特定警告编号。


归档时间:

查看次数:

74496 次

最近记录:

7 年,1 月 前