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

目录
相关文章
|
Kubernetes 监控 调度
Kubernetes Pod调度:从基础到高级实战技巧
Kubernetes Pod调度:从基础到高级实战技巧
2901 0
|
容器 Docker 数据安全/隐私保护
阿里云开源 image-syncer 工具,容器镜像迁移同步的终极利器
为什么要做这个工具? 由于阿里云上的容器服务 ACK 在使用成本、运维成本、方便性、长期稳定性上大大超过公司自建自维护 Kubernets 集群,有不少公司纷纷想把之前自己维护 Kubernetes 负载迁移到阿里云 ACK 服务上。
|
Unix Linux 异构计算
用于实时 Linux® 的 TwinCAT Runtime,基于 Linux® 的实时控制器开辟了新的应用可能性
**TwinCAT Runtime for Linux®** 打开了倍福实时控制的新领域,支持在同一PC上运行多个独立实例,促进硬件整合和效率提升。基于Debian的定制Linux发行版,内置实时内核,允许GPU驱动的高速应用如机器视觉。利用Docker等容器技术,实现模块化控制和资源优化,降低工程成本。此发行版将逐步扩展到更多倍福设备,为Linux用户提供熟悉的TwinCAT编程环境和增强的灵活性。
|
程序员 CDN
github Release 下载加速,绿色合法,遥遥领先
你有没有这样一个困惑,当你寻找了很久终于找到一个解决问题的方案,发现这个工具在 GitHub 上,接下来等待我们的就是遥遥无期的龟速下载。
1105 0
github Release 下载加速,绿色合法,遥遥领先
|
传感器 NoSQL 算法
ROS Moveit 配置全网最详细教程
本文是关于ROS Moveit配置的全网最详细教程,提供了一键安装脚本,以及如何使用Moveit进行机器人运动规划的详细步骤和说明。文中还深入解析了Moveit的配置包文件、Moveit的源码,以及如何使用不同的运动规划算法(如CHOMP、LERP、STOMP)进行路径规划。
2595 1
ROS Moveit 配置全网最详细教程
|
Java Maven
Cannot access repo1 (http://repo1.maven.org/maven2) in offline mode and the
Cannot access repo1 (http://repo1.maven.org/maven2) in offline mode and the
404 0
|
机器学习/深度学习 PyTorch TensorFlow
在深度学习中,数据增强是一种常用的技术,用于通过增加训练数据的多样性来提高模型的泛化能力。`albumentations`是一个强大的Python库,用于图像增强,支持多种图像变换操作,并且可以与深度学习框架(如PyTorch、TensorFlow等)无缝集成。
在深度学习中,数据增强是一种常用的技术,用于通过增加训练数据的多样性来提高模型的泛化能力。`albumentations`是一个强大的Python库,用于图像增强,支持多种图像变换操作,并且可以与深度学习框架(如PyTorch、TensorFlow等)无缝集成。
|
存储 自然语言处理 关系型数据库
Elasticsearch如何修改Mapping结构并实现业务零停机
Elasticsearch如何修改Mapping结构并实现业务零停机
|
监控 安全 Unix
探索Linux操作系统的多用户管理特性
【6月更文挑战第3天】本文深入探讨了Linux操作系统中的一项核心功能——多用户管理。我们将从系统管理员的视角出发,分析如何高效地创建、维护和监控多个用户账户,以及这一机制对于确保系统安全性和资源合理分配的重要性。文章将通过实际案例,展示多用户环境下权限设置的最佳实践,旨在帮助读者更好地理解和应用这些关键概念。
|
开发工具 git
解决pre-commit hook failed (add --no-verify to bypass)的问题
该文介绍了两种免去Git预提交钩子(pre-commit)的方法。一是直接进入项目.git/hooks目录,使用`rm -rf ./git/hooks/pre-commit`命令删除pre-commit文件。二是提交时添加`--no-verify`参数,如`git commit --no-verify -m"XXX"`,以跳过预提交检查。
807 0