当前位置: 首页 > news >正文

编程技能:字符串函数04,直接使用 strcpy,解决报错

专栏导航

本节文章分别属于《Win32 学习笔记》和《MFC 学习笔记》两个专栏,故划分为两个专栏导航。读者可以自行选择前往哪个专栏。

(一)WIn32 专栏导航

上一篇:编程技能:字符串函数03,strncpy

回到目录

下一篇:无

(二)MFC 专栏导航

上一篇:编程技能:字符串函数03,strncpy

回到目录

下一篇:无

本节前言

在之前的两节里,我们讲解了 strcpy 和 strncpy 。在之前的讲解里,我们说了 Visual Studio 不支持直接使用 strcpy 与 strncpy 。可是,假定,我们的确是想要直接在 Visual Studio 里面使用这俩函数,要如何做呢?

本节,我们就来解决这一问题。

一.    使用 strcpy 时候的报错信息

直接在 VS2010 或者 VS2019 里面使用 strcpy 和 strncpy,出现的报错信息是一样的,解决方法也一样。因此,我们以 strcpy 的报错处理为例,来讲解处理报错的方法。

本节,我们所使用的代码如下。

#include <stdio.h>
#include <string.h>int main(void)
{char dst[100];char src[] = "Windows Proggraming Designment";strcpy(dst, src);printf("目的字符串:%s", dst);return 0;
}

接下来,请大家自行新建解决方案,并添加上述代码块中的代码。

关于新建解决方案,添加代码与编译的方法,大家可以参照下面的链接所示 的文章。

Windows编程:使用 VS2010 编写 C语言程序-CSDN博客

Windows编程:用 VS2019 编写C语言程序-CSDN博客

大家在依次点选【生成 -> 生成解决方案】菜单命令,编译了上述的代码以后,Visual Studio 会报错。我这里,是使用 VS2019 来编译的。 VS2019 的报错信息如下。

图1

其中的部分文字,我把它展示在下面。

错误    C4996    'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.

这段文字的中文翻译如下。

错误  C4996     ` strcpy `:此函数或变量可能不安全。建议考虑改用 strcpy_s。要禁用弃用,请使用  _CRT_SECURE_NO_WARNINGS。有关详细信息,请参阅在线帮助。

这段文字的意思大概是说,Visual Studio 禁止直接使用 strcpy,因为觉得它不安全。所以呢,建议你使用安全的 strcpy_s 。如果你想要让 VS2019 允许直接使用 strcpy,请使用  _CRT_SECURE_NO_WARNINGS 参数。

那么,问题在于,我们如何来使用  _CRT_SECURE_NO_WARNINGS 参数,以便让 VS2019 允许我们直接使用 strcpy 呢?

下一分节来讲解此问题。

二.    使用  _CRT_SECURE_NO_WARNINGS 参数

请大家和我一起来做。

我们依次点选【项目】,【属性】菜单命令,如下图所示。

图2

如图2 所示,我们要点选的,是这个含有【属性】字样的菜单项。我们在称呼它的时候,把它叫做【属性】菜单项。然而,实际显示的时候,要看我们是在哪个项目里面。如果,我们正处于 X1 项目里面,则此菜单项,显示的文字为【X1 属性】。如果我们正处于【K30】项目里,则此菜单项显示的文字为【K30 属性】。

不论这个【属性】菜单项的【属性】二字的左边是什么项目名称,我们都把它叫做【属性】菜单。

按照图2 的指示,点选了【项目 -> 属性】菜单命令以后,会弹出如下图所示的对话框。

图3

在图3的左边,有一个选项,名为【C/C++】,它的左边,还有一个三角号。如下图所示。

图4

如图4 的红色框线所示,在我的截图里面,这个三角号是空心和向右的。如果你的三角号跟我的一样,也是空心向右的,那么,请你点击一下这个三角号,使其变为实心形状,并展开【C/C++】里面的内容。如下图所示。

图5

在图5 里面,大家点选一下红色框线所示的【预处理器】选项。结果如下图所示。

图6

在图6里面,大家关注一下红色框线所示的选项,它的选项名称为【预处理器定义】,在它的右边,是【预处理器定义】选项的内容。我们用鼠标左键单击【预处理器定义】选项名称的右边一栏的位置,会出现如下变化。

图7

如图7 的红色框线所示,在【预处理器定义】选项名称的右边一栏的右侧,出现了向下的箭头符号。我们点击这个箭头符号,在弹出的选项我们点击【编辑】字样,过程如下图所示。

图8
图9

在图9 的红色框线的位置,所指示的白色区域,是一个多行文本编辑框。我们单击它,并且滚动鼠标滚轮,将位置定位到最下面,如下图所示。

图10

此时,我们按下回车键,另起一行,然后输入【 _CRT_SECURE_NO_WARNINGS】,结果如下图所示。

图11

然后呢,我们点击【预处理器定义】对话框下方的【确定】按钮,回到属性页对话框。如下图所示。

图12

然后在【属性页】对话框中,我们继续点击下方的【确定】按钮,回到软件主界面。

图13

回到了软件主界面以后,我们依次点选【生成】,【生成解决方案】菜单命令,以重新编译解决方案。结果如下。

图14

看到了吧?成功了。

接下来,我们依次点选【调试】,【开始执行(不调试)】菜单命令,结果如下。

图15

这样的话,我们的程序就算是编译和运行成功了。接下来,大家可以关闭图15所示的黑窗口,也可以关闭 Visual Studio 了。

本节所讲的,使用 _CRT_SECURE_NO_WARNINGS 参数的方法,我会将其发布在下面的连接所示的 Gitee 网站里。

Gitee 仓库:VC++软件使用知识点

在这里,对于 _CRT_SECURE_NO_WARNINGS 参数的使用方法,它算是一种零散的知识点。

我认为,对于这样的一种零散的知识点,我们遇到了以后,可以及时将其记录下来,以便查找,方便以后得使用。

结束语

到了这里,我们这一节的内容,也就讲完了。

其实, Visual Studio 的功能很强大。随着我们的使用经验的增多,渐渐地会用到它的许多强大的功能的。

本节结束。

专栏导航

本节文章分别属于《Win32 学习笔记》和《MFC 学习笔记》两个专栏,故划分为两个专栏导航。读者可以自行选择前往哪个专栏。

(一)WIn32 专栏导航

上一篇:编程技能:字符串函数03,strncpy

回到目录

下一篇:无

(二)MFC 专栏导航

上一篇:编程技能:字符串函数03,strncpy

回到目录

下一篇:无

相关文章:

  • C#上位机RS485通信控制变频器
  • CodeBuddy Craft,我的编程搭子
  • 股指期货套期保值怎么操作?
  • python: *args 与 **kwargs 用法
  • 从零实现一个高并发内存池 - 2
  • 【软件测试】第二章·软件测试的基本概念
  • 牛客——签到题
  • JavaScript篇:揭秘函数式与命令式编程的思维碰撞
  • 软件设计师考试《综合知识》计算机编码考点分析——会更新软设所有知识点的考情分析,求个三连
  • 最短路与拓扑(2)
  • map格式可以接收返回 fastjson2格式的数据 而不需要显示的转换
  • 【THRMM】追踪情绪动态变化的多模态时间背景网络
  • PostgreSQL常用DML操作的锁类型归纳
  • FlashInfer - 介绍 LLM服务加速库 地基的一块石头
  • 通过宝塔配置HTTPS证书
  • Problem B: 统计数字次数
  • 智慧工地系统如何实现实时监控?
  • 跨域的几种方案
  • ESP32WIFI工具加透传
  • 配置Nginx解决http host头攻击漏洞【详细步骤】
  • 哪些是b2b类的网站/精准引流客源的方法可靠吗
  • 承德网站建设费用/简述seo
  • 网站备案取消接入/百度官网首页入口
  • 网站建设及运营服务流程/福州网络推广运营
  • 怎样给网站或者商品做推广/自己建网站要花多少钱
  • wordpress rss源/保定seo推广公司