在vs2008, vs2012中用sprintf 会出现warning C4996: 'sprintf' was declared deprecated或warning C4996: 'strcpy' was declared deprecated或warning C4996: 'strcat' was declared deprecated的警告。这里给出解决问题的一些方法。
方法一:调用VS2005鼓吹的那些带“_s”后缀的非标准函数,即在其后加上"_S",如sprintf改为sprintf_s 。
方法二:在文件最开始添加#define _CRT_SECURE_NO_DEPRECATE或#pragma warning(disable:4996) ,这是忽略警告的方法(一般比较少用)。
方法三:干粹在工程属性中设置(推荐)。
在工程属性中设置的方法如下:
对于VC6:
打开Project----settings----Resources----Preprocessor definitions,
添加_CRT_SECURE_NO_DEPRECATE和_SCL_SECURE_NO_DEPRECATE这两个宏。
对于VS系列的版本:
打开项目----项目属性---配置属性----C/C++ ----预处理器----预处理定义,
添加_CRT_SECURE_NO_DEPRECATE和_SCL_SECURE_NO_DEPRECATE这两个宏。
阅读(2840) | 评论(0) | 转发(0) |