本文主要是介绍“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博客
这篇关于“XXX“声明已否决,是不能用了吗?已有解决方法。的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!