现象
编译c++代码时,经常会出现如下提示,大约有几种情况:
现象一
warning 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.
现象二
1>d:\x\userfile.cpp(43): error C4996: 'fopen': This function or variable may be unsafe. Consider using fopen_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
1> c:\program files (x86)\microsoft visual studio 11.0\vc\include\stdio.h(218) : 参见“fopen”的声明
现象三
1>d:\x\xstring.cpp(115): error C4996: 'strncpy': This function or variable may be unsafe. Consider using strncpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
1>c:\program files (x86)\microsoft visual studio 11.0\vc\include\string.h(191) : 参见“strncpy”的声明
分析
在VS中调用strcpy、strcat、fopen等函数时会提示 _CRT_SECURE_NO_WARNINGS
警告,原因是这些函数不安全,可能会造成内存泄露等。
解决
在项目上右键点击弹出菜单中的“属性”,得到如下窗口:
在预处理里中编辑,添加如下内容:
内容为:
_CRT_SECURE_NO_WARNINGS
就可以解决上述问题。