编程技能:字符串函数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 的报错信息如下。

其中的部分文字,我把它展示在下面。
错误 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 所示,我们要点选的,是这个含有【属性】字样的菜单项。我们在称呼它的时候,把它叫做【属性】菜单项。然而,实际显示的时候,要看我们是在哪个项目里面。如果,我们正处于 X1 项目里面,则此菜单项,显示的文字为【X1 属性】。如果我们正处于【K30】项目里,则此菜单项显示的文字为【K30 属性】。
不论这个【属性】菜单项的【属性】二字的左边是什么项目名称,我们都把它叫做【属性】菜单。
按照图2 的指示,点选了【项目 -> 属性】菜单命令以后,会弹出如下图所示的对话框。

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

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

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

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

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


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

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

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

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

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

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

这样的话,我们的程序就算是编译和运行成功了。接下来,大家可以关闭图15所示的黑窗口,也可以关闭 Visual Studio 了。
本节所讲的,使用 _CRT_SECURE_NO_WARNINGS 参数的方法,我会将其发布在下面的连接所示的 Gitee 网站里。
Gitee 仓库:VC++软件使用知识点
在这里,对于 _CRT_SECURE_NO_WARNINGS 参数的使用方法,它算是一种零散的知识点。
我认为,对于这样的一种零散的知识点,我们遇到了以后,可以及时将其记录下来,以便查找,方便以后得使用。
结束语
到了这里,我们这一节的内容,也就讲完了。
其实, Visual Studio 的功能很强大。随着我们的使用经验的增多,渐渐地会用到它的许多强大的功能的。
本节结束。
专栏导航
本节文章分别属于《Win32 学习笔记》和《MFC 学习笔记》两个专栏,故划分为两个专栏导航。读者可以自行选择前往哪个专栏。
(一)WIn32 专栏导航
上一篇:编程技能:字符串函数03,strncpy
回到目录
下一篇:无
(二)MFC 专栏导航
上一篇:编程技能:字符串函数03,strncpy
回到目录
下一篇:无