随笔杂记(十)——C++:C4996报错解决方法
C++: C4996报错
我的博客:竹山听雨
文章目录
- C++: C4996报错
- 问题描述
- 问题出现原因
- 解决方法
- 使用安全的函数
- 添加宏
- 添加#define EXAMPLE_MACRO_NAME
- 添加#pragma warning(disable:4996)
- 结语
问题描述
- 环境:V2019
- 语言:C++
还是在完成学校作业的时候(ps:好像原来也遇到过很多次了),在VS201x编译器上,使用scanf()
,strcpy()
等,都会出现这个问题。
严重性 代码 说明 项目 文件 行 禁止显示状态 错误 C4996 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
问题出现原因
创建项目时,会有一个勾选项,叫做"安全开发生命周期(SDL)检查",为了更好的监管开发者的代码安全,如果勾选,他将严格按照SDL的规则编译代码,因此一些常用的函数,如scanf
等就会报错C4996
解决方法
使用安全的函数
如scanf()
改为scanf_s()
.strcpy()
改为strcpy_s()
等。这个方法适合长期解决问题,因为scanf等函数的确会对程序造成一些不良影响,但是有些安全函数,如:strcpy_s
和strcpy
原版函数的参数好像不同,对初学者,仅仅是做一个demo来说,可能会有新的bug
添加宏
选择项目——>xxxx(你的项目名称)属性——>C++——>预处理器——>预处理器定义
在定义后面添加_CRT_NONSTDC_NO_DEPRECATE
和_CRT_SECURE_NO_WARNINGS
保存重新编译即可
**注意:**要记得每个定义后面要以;
隔开
这样的方法在本项目中,都会忽略这些报错,但是可能会有些麻烦
添加#define EXAMPLE_MACRO_NAME
若要仅在特定源文件中定义的宏,请添加一个行如#define EXAMPLE_MACRO_NAME
包含的头文件的任意行之前
可能有些时候这个方法没用,暂时不清楚原因
添加#pragma warning(disable:4996)
这个可能是最简单粗暴的解决方法,直接忽略掉C4996
这个报错
在文件首添加#pragma warning(disable:4996)
即可,但是也仅对当前源文件有效
结语
若有哪里不对,敬请大佬指正
随笔杂记(十)——C++:C4996报错解决方法相关推荐
- 高翔视觉SLAM十四讲(第二版)各种软件、库安装的以及报错解决方法
目录 前言 系统版本 下载高翔视觉SLAM十四讲第二版的源代码 一.安装 Vim 二.安装 g++ 三.安装 KDevelop 以及汉化 1.安装 2.汉化 四.安装 Eigen 库 五.安装 Pan ...
- Jenkins安装插件报错解决方法
Jenkins安装插件报错解决方法 1.报错场景 2.场景分析 3.问题解决(不一定能全解决,看运气) 1.报错场景 按正常方式安装完Jenkins后安装插件会报错如下: // An highligh ...
- ThinkPad安装deepin操作系统报错解决方法
ThinkPad安装deepin操作系统报错解决方法 参考文章: (1)ThinkPad安装deepin操作系统报错解决方法 (2)https://www.cnblogs.com/haihua85/p ...
- hive导出数据到本地文件报错解决方法
hive导出数据到本地文件报错解决方法 参考文章: (1)hive导出数据到本地文件报错解决方法 (2)https://www.cnblogs.com/yaopeiyun/p/12232251.htm ...
- Failed to resolve: com.android.support:appcompat-v7:27.+ 报错解决方法
Failed to resolve: com.android.support:appcompat-v7:27.+ 报错解决方法 参考文章: (1)Failed to resolve: com.andr ...
- AndroidStudio EventBus报错解决方法its super classes have no public methods with the @Subscribe
AndroidStudio EventBus报错解决方法its super classes have no public methods with the @Subscribe 参考文章: (1)An ...
- @Data注解使用后get set报错解决方法
@Data注解使用后get set报错解决方法 参考文章: (1)@Data注解使用后get set报错解决方法 (2)https://www.cnblogs.com/lijinshan950823/ ...
- 【PaddlePaddle系列】报错解决方法合集 (不定时更新)
[PaddlePaddle系列]报错解决方法合集 (不定时更新) 参考文章: (1)[PaddlePaddle系列]报错解决方法合集 (不定时更新) (2)https://www.cnblogs.co ...
- vue 项目初始化时,npm run dev报错解决方法
vue 项目初始化时,npm run dev报错解决方法 参考文章: (1)vue 项目初始化时,npm run dev报错解决方法 (2)https://www.cnblogs.com/ruilin ...
最新文章
- hashmap是线程安全的吗?怎么解决?_解决SimpleDateFormat线程安全问题
- iOS 中strong,weak,copy,assign区别
- PHP45个方便的工具
- kotlin学习笔记——重载操作符
- (一)html5中的新增元素和废除元素
- ASP.NET MVC 2.0
- EJB3.0学习笔记---Bean实现多个接口的情况下定义,访问方式:
- Nginx(6)-配置基于域名的虚拟主机
- 深入分析Android Binder 驱动
- php 微信登录 扫码 h5,【小程序】WeAuth微信小程序实现PC网站扫码授权登录
- 佳能打印机 Cannon G2810 维护修复方法
- chrome浏览器设置思源黑体
- uva 10105(数论)
- UML类图和用例图练习
- 【POJ 2484】A Funny Game(对称博弈)
- 为什么现在90后员工离职率那么高?
- QIIME 2教程. 11元数据Metadata(2021.2)
- UVA - 489 Hangman Judge 刘汝佳紫书题单(算法竞赛入门经典)
- java物流管理系统_java web物流管理系统
- UE4查看材质在android设备上的性能开销
热门文章
- PyCrypto安装和使用示例
- mycat原理及分表分库入门
- 大一新生必会的c语言五子棋!PVP,PVE,EVE模式都有,还有智能的AI部分,复盘等内容!一看就会的五子棋教程,确定不来看看吗?
- 【读论文】Character-Level Language Modeling with Deeper Self-Attention(Vanilla Transformer)
- Security:osquery 介绍
- yolo v4 weights 权重
- android socket通讯
- Zookeeper 服务器端和客户端扩大节点数据1M大小限制
- ROS(Robot Operating SysTerm) 系统
- 第4章 安装CentOS 5.x与多重引导小技巧