首页 > 代码库 > VS下关于 _CRT_SECURE_NO_WARNINGS 问题的分析与解决

VS下关于 _CRT_SECURE_NO_WARNINGS 问题的分析与解决

一、问题的起因

六月下旬,老师布置了有关图形学的课设,于是我将我在VS2013中写好的代码进行编译,结果得到了以下信息:

技术分享

 

二、解决方法

1,按照英文提示,我先将fopen改成了fopen_s后,发现错误比原来还多,于是请教了朋友,他说加有关 _CRT_SECURE_NO_WARNINGS 的宏定义

于是可以尝试在程序的前面加上如下宏定义:

#define _CRT_SECURE_NO_WARNINGS
#include "stdafx.h"
#include<Windows.h>

 

 

或者在项目(Project) -> 属性(Properties) -> C/C++ -> 预处理器(Preprocessor) -> 预处理器定中添加 _CRT_SECURE_NO_WARNINGS 这个预定义,然后点击确定即可:

技术分享

 

小结:在VS中调用 scanf、fopen 等函数时会提示 _CRT_SECURE_NO_WARNINGS 警告,原因是这些函数不安全,可能会造成内存泄露等,所以编译器会建议采用带_s的函数。当然如果执意不加_s,那么就需要使用 _CRT_SECURE_NO_WARNINGS 标记来忽略这些警告问题。

 

2,关闭安全开发生命周期检查(SDL)

 

VS下关于 _CRT_SECURE_NO_WARNINGS 问题的分析与解决