VS报错【C4996】This function or variable may be unsafe. Consider using fopen_s instead.

编程知识 更新时间:2023-05-02 05:34:57

楼主最近在学习图像处理,所用平台为VS2017+opencv3.2.0。调试程序时,报错如下:

This function or variable may be unsafe. Consider using fopen_s instead.
 To disable deprecation, use _CRT_SECURE_NO_WARNINGS. 
 See online help for details.

仔细一看,这不挺简单嘛,在包含文件前面添加提示的宏定义就行了:

#define _CRT_SECURE_NO_WARNINGS

运行之后,发现结果依然没变,继续报错如上所示。

于是,内事不决问百度,总结如下几点解决方法:

  • 1.就如提示那样添加宏定义:
#define _CRT_SECURE_NO_WARNINGS
  • 2.新建项目的时候去掉“安全开发生命周期(SDL)检查”即可将错误转变成警告,不影响编译和运行。项目建立好之后就在 “项目->属性->C/C++/常规”将SDL检查改为“/sdl-”,如图所示:

  • 3.fopen等类似的函数已经不太安全,建议以后采用_s结尾的安全版本。

  • 4.和第一种方法类似,找到“项目->属性->C/C++/预处理器/预处理器定义”中添加“_CRT_SECURE_NO_WARNINGS”,如下图所示:

  • 5最后一条就是,在编译的头文件前面加上:#pragma warning( disable : 4996)。

楼主都试过了,发现没有用!!!

  • 6.楼主以前偶然间看过一个配置的解决方案,试着操作了一下:
    “无心插柳柳成荫”啊,居然调试成功了!!!
    分享一下:
    将解决方案有Debug改为Release,配置环境就行了。
    不过楼主一直追究这是为什么***,同时欢迎大家留言互相学习*啊。

更多推荐

VS报错【C4996】This function or variable may be unsafe. Consider using fopen_s inste

本文发布于:2023-04-26 07:21:00,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/d1ad9caa727baec2f702645d4015895e.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:报错   function   fopen_s   unsafe   variable

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!

  • 104693文章数
  • 26218阅读数
  • 0评论数