下载地址
Visual Studio地址: https://visualstudio.microsoft.com/zh-hans/
在vs高版本中,一直有个SDL检测,举个例子:
#include<stdio.h>
int main()
{
int x, y;
scanf("%d", &x);
y = x;
printf("y=%d\n",y);
return 0;
}
这个程序在VC6.0或者2010运行是可以的,但是在vs高版本会出错,错误如下:
error C4996: 'scanf': This function or variable may be unsafe. Consider using scanf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
这就是vs高版本的安全开发生命周期(SDL)检查,这里在错误中也给出了解决方法
第一种解决方法:
Consider using scanf_s instead。大致意思就是把scanf改成scanf_s。正确代码如下
#include<stdio.h>
int main()
{
int x, y;
scanf_s("%d", &x);
y = x;
printf("y=%d\n",y);
return 0;
}
第二种解决方法:
use _CRT_SECURE_NO_WARNINGS。忽略警告,将下面一行在写首行
#define _CRT_SECURE_NO_WARNINGS
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
int main()
{
int x, y;
scanf("%d", &x);
y = x;
printf("y=%d\n",y);
return 0;
}
第三种解决方法:
选择菜单栏的【项目】->【属性】->【C/C++】->【常规】->【SDL检测】->【否(/sdl-)】,最后确定。
关闭SDL检测,下方错误列表中的 error C4996:会变成warning C4996:,不过不影响运行。
以上就是关于vs高版本遇到安全开发生命周期(SDL)检查的办法,我这里只举例了一个scanf,还有其它的。遇到的话,按照上面三种方法都能解决,实在不行就百度吧,百度上面有很多解决办法。