“XXX“声明已否决,是不能用了吗?已有解决方法。

问题是由 "error 4997 :‘GetVersionExW"声明已否决。"案例引出;

问题:"XXX"声明已经否决。

解决方法:"禁用SDL"

        修改禁用SDL路径如下:

               

问题结束。

-----------------------------------------------------------------------------------------------------------------------------

正文开始:

        有网友疑问,禁用SDL,有什么风险没有,会不会使自己的项目出问题;答案是肯定的,风险一定会有,但是你的项目如果不是想淘宝这种日并发量过亿,每秒最高交易量达93500,那就不用太担心自己的代码出问题。

        SDL简介:

        想要知道拒绝SDL检查,会不会影响自己代码,就要先了解什么是"SDL"。SDL是微软在开发vs编译器的时候,在加入改进安全相关的一种措施手段。其根本目的是为了通过SDL交换机提供的一个中央机制来实现这些额外的安全支持。

        当然项目的要求是千变万化的,功能是多种多样的;因此出现的不符合规范的代码也是多样性的。SDL不能全面照顾到这些额外的函数安全结构的时候,就会出现“xxx的声明已经被否决”的提示。

        每当这个时候最行之有效的方案有两种:

        第一种:禁用“SDL检查”,使其忽略在编译过程中的警告提示。允许自己的代码生成成功。这种修改方式是允许的,当时还是有弊端,不完全的安全,等真正存在一个影响到项目安全的错误出现的时候,很可能会被真正的忽略掉。

        第二种方案:当然最好是修改代码,使用SDL错误提示中的修改。

        

        Check"SDL集群"以及工程人员手动规避这些错误警告;这种双管齐下的办法,才是安全软件开发的最好的方式。

//     

        注释:本次案例的“GetVersionExW"声明已否决”中的GetVersionExW主要原因在Windows8.1已经被废弃使用,也可以使用_WIN32_WINNT改为Windows8.1以后的值,就可以使用了。编译警告就会被允许了。

        修改_WIN32_WINNT的方式,可查看下面链接:

_WIN32_WINNT, WINVER,WIN32_IE, _MSC_VER的值定义以及简单使用_Controller_wgy的博客-CSDN博客

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值