问题描述
由于一些传统C语言函数有一定的安全风险,微软在 Visual Studio 中不建议使用这些传统库函数,否则会提示 C4996 错误。
Visual Studio 建议采用带_s的函数,如 scanf_s、strcpy_s,但这些并不是标准C函数。
解决方案
A、文件内添加抑制
1、关闭针对特定代码行的警告(作用于行)
在该行正上方,使用 warning pragma: #pragma warning(suppress : 4996)
2、在文件中关闭警告(作用于文件)
若要在文件中针对随后的所有内容关闭警告,在文件头部使用 warning pragma:
#pragma warning(disable : 4996)
或者
根据编译器提示来使用宏定义:
在文件头部添加宏: #define _CRT_SECURE_NO_WARNINGS
B、项目中添加抑制(作用于整个项目)
1、在命令行生成中关闭警告
使用 /wd4996 命令行选项。
2、使用全局宏定义
右键项目→属性→C/C++(预处理器)→下拉菜单→编辑
新建行,输入 _CRT_SECURE_NO_WARNINGS
3、关闭SDL检查
右键项目→属性→C/C++(常规)→SDL检查(把“是” 改成 “否”)
拓展
如果使用“文件内添加抑制”的方案,则可以修改文件模版,在模板中添加特定代码。
右键 Visual Studio 快捷方式(桌面没有找开始菜单) → 右键(属性) → 打开文件所在的位置
进入 VC→VCProjectItems 文件夹,你可以看到 newc++file.cpp,把他复制到桌面,修改,再剪切回去,即可修改VS中新建 cpp 文件的默认内容。
另外,你可以再编写一份 “源.c” 文件,同样复制到 VCProjectItems 文件夹内,即可在“新建项目”窗口看到该文件。变相提供了 .c 文件的模板。
注意:
在 “紧凑视图” 里新建 “文件名.cpp” 文件,依旧可以应用之前通过修改 newc++file.cpp 而修改的cpp文件模版。
而若以此方式新建 .c 文件,则不会应用 “源.c” 的内容。如若需要使用该 “模板”,请在完整的“添加新项” 视图里选择并新建该文件。
文章来源:https://www.toymoban.com/news/detail-799603.html
参考
1. 编译器警告(级别 3)C4996 | Microsoft Learn
2. CSDN同站博文 文章来源地址https://www.toymoban.com/news/detail-799603.html
到了这里,关于【解决】屏蔽 Visual Studio 在 C++ 项目中的 C4996 错误的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!