小编FWD*_*ker的帖子

Visual Studio 2015不会禁止错误C4996

在调试中编译时,Visual Studio 2015 Community Edition会出现以下错误,但在发布时进行编译时则不会:

std::copy::_Unchecked_iterators::_Deprecate': Call to 'std::copy' with parameters that may be unsafe - this call relies on the caller to check that the passed values are correct. To disable this warning, use -D_SCL_SECURE_NO_WARNINGS. See documentation on how to use Visual C++ 'Checked Iterators'
Run Code Online (Sandbox Code Playgroud)

我能够将此错误的来源追溯到我用于编写位图图像的第三方库的第214和242行.我不完全了解这些部分发生了什么,所以我宁愿不要搞乱它.


我试图禁用此错误,但Visual Studio不会让我.我已经尝试了文档,StackOverflow或其他地方建议的以下解决方案:

  • 添加4996到项目设置>配置属性> C/C++>高级中的"禁用特定警告"字段.
  • 添加/wd4996到"项目设置">"配置属性">"调试"中的"命令参数"字段.
  • 添加#pragma warning (disable : 4996)到违规文件的顶部,和/或违规功能之上.
  • 添加_SCL_SECURE_NO_WARNINGS,_SCL_NONSTDC_NO_WARNINGS,_SCL_OBSOLETE_NO_WARNINGS,_SCL_SECURE_NO_WARNINGS_GLOBAL,和其组合中的项目设置的"预处理定义"字段>配置属性> C/C++>预处理器.
  • 使用#define指令将先前解决方案中的定义添加到违规文件的顶部. …

c++ visual-studio visual-c++ visual-studio-2015

5
推荐指数
2
解决办法
5675
查看次数