解决vs运行时报C4996代码错误

简介: 在解决bug的路上越走越远。。。。

问题产生

今天偶然用vs运行一段C代码时,程序报错无法运行,系统找不到指定文件。

简单而言就是当前项目的Debug文件中找不到该项目的可执行文件.exe。

我先尝试打开了该项目的属性,查看了下该模式下所生成的可执行文件的位置,发现存在该文件路径啊。

然后我回到本地存储的路径,发现原来程序运行根本就没有生成.exe的可运行文件。那肯定找不到.exe运行文件啊。🤣🤣🤣

然后去看程序报错

问题原因

查资料后发现,问题产生原因:

由于微软在VS中不建议再使用C的传统库函数scanf,strcpy,sprintf等,所以直接使用这些库函数会提示C4996错误。
VS建议采用带_s的函数,如scanf_s、strcpy_s,但这些并不是标准C函数。

解决方案:

方案一:

首先找到自己的项目,右键项目,选择项目属性,将SDL检查关闭,如下图就行。

这样项目就可以直接运行了。

方案二:

添加宏定义

//这个宏定义最好要放到.c文件的第一行, 二选一即可
#define _CRT_SECURE_NO_WARNINGS
#pragma warning(disable:4996)

这样,程序也可以成功运行起来了。

程序员不是在去生产bug的路上,那就是在去解决bug的路上。🤣🤣🤣🤣

目录
相关文章
|
API
处理应用代码中的错误
处理应用代码中的错误
62 0
|
Java
命令行下运行JAVA出错:错误的签名:
命令行下运行JAVA出错:错误的签名:
74 0
DeepStream运行范例出错,提示缺少libnvinfer.so怎么办?
DeepStream运行范例出错,提示缺少libnvinfer.so怎么办?
236 0
|
异构计算
之前代码出现的错误总结
之前代码出现的错误总结
92 0
|
前端开发 Java 应用服务中间件
|
前端开发 Windows
如何在 Cypress 测试代码中屏蔽(Suppress)来自应用代码报出的错误消息
如何在 Cypress 测试代码中屏蔽(Suppress)来自应用代码报出的错误消息
如何在 Cypress 测试代码中屏蔽(Suppress)来自应用代码报出的错误消息