【Visual Studio 2015】安全开发生命周期(SDL)检查

Visual Studio 2015引入了更严格的SDL检查,将某些编译器警告提升为错误,强制程序员使用安全模式的函数。这些检查默认开启,可以通过项目属性关闭。/SDL开关启用额外的安全功能,如编译器警告错误处理和栈溢出保护。尽管SDL有助于提高安全性,但安全版本的函数并非绝对安全,开发者仍需谨慎编写代码。
摘要由CSDN通过智能技术生成
    有的时候写的代码明明没有什么问题就是编译不过, 我就觉得奇怪了。我是编译通过的代码,怎么就有问题呢?在VS2015运行,还真是有问题。看错误提示,是VS将这个函数的使用当做错误对待了!

     在以前的VS版本中,检测并不严格,对于很多警告,我们程序员通常都是忽略,只要不报错,懒得管。可能是微软发现了这个情况,做了更严格的检测。将这些警告变成了错误,所以,就让你编译通不过了。这样逼着你用一种安全模式的函数版本,就是在后面加上_s,_s表示safe,代表安全版本,编译时会做一定的安全检测。以前曾研究过,实际上这并不能百分之百杜绝安全问题。

    安全版函数只是做了有限的检测而已,可以杜绝一些问题而已。现在VS2015竟然做到这个地步,逼得这么紧。这不仅是Windows 10安全性变高了,而且还要逼程序员提高安全性编码呀! 开始我还以为降低警告安全级别即可,实际上并不行。警告级别是设置VS检测警告的范围程度,但是这个问题归结为了错误,就不是警告所能设置的。为什么会出现这个问题呢?

    在创建项目时,或许你会发现,在创建项目向导时多了一个选项,而且是默认选中的,那就是“安全开发生命周期(SDL)检查(C)”。如下图所示:


    默认这个检查之后,再也不能好好撸代码了。对代码做了很多安全性检测,也是防止很多错误出现。这样的话,就将这些警告变成了错误来提醒,促使你更加安全的编写代码咯。
    如果开始你不知道,然后就默认勾上了,没关系,你可以在项目属性中去掉这个设置。第一步就是点开项目的属性对话框,如下图所示:

    
    然后找到“安全开发生命周期(SDL)检查(C)”,然后设置为“否”,然后确定,OK搞定!如下图所示:
    
  • 11
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值