解决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的路上。🤣🤣🤣🤣

目录
相关文章
运行PaddleDetection报错问题
PaddleDetection没有找到文件解决
|
Serverless 文件存储 容器
部署函数时发生了错误
部署函数时发生了错误
102 2
|
API
处理应用代码中的错误
处理应用代码中的错误
89 0
|
Java
命令行下运行JAVA出错:错误的签名:
命令行下运行JAVA出错:错误的签名:
90 0
|
异构计算
之前代码出现的错误总结
之前代码出现的错误总结
129 0
|
前端开发 Java 应用服务中间件
|
SQL Windows
在执行xp_cmdshell的过程中出错,调用'LogonUserW'失败,错误代码:'1909'
在上篇文章Could not obtain information about Windows NT group/user 'xxxx\xxxx', error code 0x5里面,我介绍了SQL Server服务启动账号域账号锁定的情况下,有些Job Owner为域账号的作业执行会报错...
1351 0