关于VS2015中strncap和strcpy函数的问题及解决办法
来源:互联网 发布:路由器mac 编辑:程序博客网 时间:2024/06/05 09:29
今天运行一个程序出现了报错,报错如下:.
'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
大意即是这个函数使用不安全,应该用strcpy_s代替。然而我用strcpy_s代替后,又显示strcpy_s函数不能包含三个参数,这很是让人莫名奇妙。在网上多方搜索,固然有人说用strcpy_s代替云云,然而已经是不能解决的方法。后来看到有人提到报错里已经提供了解决办法了,即To disable deprecation, use _CRT_SECURE_NO_WARNINGS.
尝试在报错的文件前面加上#define _CRT_SECURE_NO_WARNINGS.但效果并不明显。在有些文件下面不在报错,但在其他文件中仍然报错。继续搜索,得到有效的解决方案如下:
1、打开“调试”,选择项目属性,在具体项目中,会显示为【文件名+属性】;
2、依次选择【C++】、【预处理器】;
3、在【预处理器定义】框中添加_CRT_SECURE_NO_WARNINGS。点击应用、确定即可。再次编译时就不再报错,正常运行。
最后,还要说一下strncpy_s函数,这是VS2015推荐的安全用法,它之所以安全,是因为它在接口中增加了一个参数numberOfElements来表明dest中的字节数,numberOfElements是目标字符串以字符为单位的大小。因此strncpy_s是四个参数的函数。下面是strncpy和strncpy_s的原型:
char * strncpy(char *dest, char *src, size_t n);
errno_t strncpy_s( char *strDest, size_t numberOfElements, const char *strSource, size_t count );
但是strncpy_s并不是标准库的函数,因此不推荐使用。
阅读全文
0 0
- 关于VS2015中strncap和strcpy函数的问题及解决办法
- VS2015环境下,显示strcpy()函数出错的解决办法
- strcpy()和memcpy()函数中忽略的内存覆盖问题
- 关于strlen和strcpy的一点问题
- 关于strcpy 和数组越界的问题
- 在C++里面关于strcpy()函数和strcpy_s()函数的问题
- 关于C++中char型数组、指针及strcpy函数的细节观察
- 关于C++中char型数组、指针及strcpy函数的细节观察
- 关于在创建JFrame中遇到的问题及解决办法
- Oracle中关于schema="workName"的问题及解决办法
- (转)关于strcpy函数的问题(程序员面试宝典P219)
- 关于strcpy与memcpy函数的地址重叠问题
- 关于strcpy函数的思考
- 关于strcpy函数的说明
- 关于strcpy函数的实现
- 关于fgets()函数使用时遇到的问题和解决办法
- 关于strcpy的面试问题
- 在VS2015中配置和测试DCMTK遇到的问题
- 题目列表
- Spring MVC如何接收浏览器传递来的请求参数--request--形参--实体类封装(类比Struts2模型驱动)
- matplotlib绘图实例:pyplot、pylab模块及作图参数
- Failed to load or instantiate TagLibraryValidator class
- bzoj1031[JSOI2007]字符加密Cipher(拆环变链,利用sa数组)
- 关于VS2015中strncap和strcpy函数的问题及解决办法
- Gson,fastjson,jackson效率测试程序
- Linux下已有python2.* 安装pyhton3.6.1与pip3
- Spark之 map和flatMap
- 蓝屏dump分析教程,附分析工具WinDbg(x86 x64)6.12.0002.633下载
- 关于 MVVM 和 ReactiveCocoa
- 维纳滤波LMS matlab
- 常见的状态码
- Python的常用操作(一)