《VS如何解决warning C4996: 'vsprintf': This function or variable may be unsafe.问题》

问题描述 

使用VS2010在生成解决方案的时候,输出窗口会出现一大堆warning C4996: 'xxx': This function or variable may be unsafe.这样的警告信息。参考了另外一位博主的说法:这是微软的警告,主要是因为那些C库的函数,很多函数内部是不进行参数检测的(包括越界类的),微软担心使用这些会造成内存异常,所以就改写了同样功能的函数,改写了的函数进行了参数的检测,使用这些新的函数会更安全和便捷。关于这些改写的函数你不用专门去记忆,因为编译器对于每个函数在给出警告时,都会告诉你相应的安全函数,查看警告信息就可以获知,在使用时也再查看一下MSDN详细了解,常见的警告信息如下。

warning C4996: 'vsprintf': This function or variable may be unsafe. 
Consider using vsprintf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. 
See online help for details.

意思是:

警告C4996: 'vsprintf':此函数或变量可能不安全。考虑使用vsprintf_s代替。
要禁用弃用,请使用_CRT_SECURE_NO_WARNINGS。有关详细信息,请参见在线帮助。

 

解决方法 

1、根据上面的警告信息进行修改,在函数名后面加上_s作为后缀,例如将vsprintf替换为vsprintf_s,通常情况下这样修改就可以解决问题了,如果问题没有解决,还是报了警告信息,有可能就是修改函数名的同时也把函数参数给修改了,就得使用另外一种方法了。

2、如果前面还有警告,就使用_CRT_SECURE_NO_WARNINGS一次性解决吧,这个命令是不弹警告,具体添加方法如下,选中项目名称,点击鼠标右键选择属性,进入项目属性页,依次选择配置属性C/C++预处理器预处理器定义,然后在最后面添加_CRT_SECURE_NO_WARNINGS

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值