warning C4996: 'swprintf': swprintf has been changed to conform with the ISO C standard, adding an e
2012-11-15 10:52
531 查看
这是今天遇到的问题:(我用的是vs2008)
代码:
错误:
d:\visual studio 2008\projects\testregex\testregex\testregex.cpp(53) : warning C4996: 'swprintf': swprintf has been changed to conform with the ISO C standard, adding an extra character count parameter. To use traditional Microsoft swprintf, set _CRT_NON_CONFORMING_SWPRINTFS.
1> d:\program files\microsoft visual studio 9.0\vc\include\swprintf.inl(85) : 参见“swprintf”的声明
网上各种搜,没有搜出来具体是为什么,然后还是回归到MSDN,看到了如下一句话:
In Visual C++ 2005, swprintf conforms to the ISO C Standard, which requires the second parameter,count, of type
size_t. To force the old nonstandard behavior, define_CRT_NON_CONFORMING_SWPRINTFS. In a future version, the old behavior may be removed, so code should be changed to use the new conformant behavior.
(在vc++2005中,swprintf 遵照国际标准组织 标准C需要第二个参数 size_t 类型的count。。。。。。。。在后来的版本中,老的行为将会被去除,所以代码应该使用新的一致性行为)(翻译的不好,将就着看吧。。。)
所以,可以直接忽略这个错误,如果你实在看到这个warning不爽,那你就加上一个参数count好了,如:
经本人测试,warning没有了.
代码:
swprintf( tempwcX, L"%s", tempStrX.c_str());
错误:
d:\visual studio 2008\projects\testregex\testregex\testregex.cpp(53) : warning C4996: 'swprintf': swprintf has been changed to conform with the ISO C standard, adding an extra character count parameter. To use traditional Microsoft swprintf, set _CRT_NON_CONFORMING_SWPRINTFS.
1> d:\program files\microsoft visual studio 9.0\vc\include\swprintf.inl(85) : 参见“swprintf”的声明
网上各种搜,没有搜出来具体是为什么,然后还是回归到MSDN,看到了如下一句话:
In Visual C++ 2005, swprintf conforms to the ISO C Standard, which requires the second parameter,count, of type
size_t. To force the old nonstandard behavior, define_CRT_NON_CONFORMING_SWPRINTFS. In a future version, the old behavior may be removed, so code should be changed to use the new conformant behavior.
(在vc++2005中,swprintf 遵照国际标准组织 标准C需要第二个参数 size_t 类型的count。。。。。。。。在后来的版本中,老的行为将会被去除,所以代码应该使用新的一致性行为)(翻译的不好,将就着看吧。。。)
所以,可以直接忽略这个错误,如果你实在看到这个warning不爽,那你就加上一个参数count好了,如:
swprintf( tempwcX, 100, L"%s", tempStrX.c_str());
经本人测试,warning没有了.
相关文章推荐
- error C4996: 'swprintf': swprintf has been changed to conform with the ISO C standard,set _CRT_NON_CONFORMING_SWPRINT
- Source insight上修改samba共享ubuntu上内核源程序文件出现"Confirm by typing ‘yes' below"、"has been changed outside of the editor. Do you want to
- tomcat 7 WARNING: A context path must either be an empty string or start with a '/' and do not end with a '/'. The path [/] does not meet these criteria and has been changed to []
- iOS 最新提示Unable to add App ID because the '10' App ID limit in '7' days has been exceeded.
- An exception has been caught while processing the refactoring 'Delete'.
- 无证书真机调试出现Unable to add App ID because the '10' App ID limit in '7' days has been exceeded.
- The reference to entity "afs" must end with the ';' delimiter.
- VS2015报错: An item with the same key has already been added
- 【url】The reference to entity "characterEncoding" must end with the ';' delimiter
- iOS 协同开发出fatal error: file 'XX-Prefix.pch' has been modified since the precompiled header was built
- Bean property 'RegDao' is not writable or has an invalid setter method. Does the parameter type of t
- dom4j:The reference to entity "characterEncoding" must end with the ';' delimiter
- 解决 The 'InnoDB' feature is disabled; you need MySQL built with 'InnoDB' to have it working
- 解决#1289 - The \'InnoDB\' feature is disabled; you need MySQL built with \'InnoDB\' to have it working的问题
- 真机测试报The certificate used to sign "XXX" has either expired or has been revoked. An updated certifica
- sharepoint2010 The Ribbon Tab with id: "Ribbon.Read" has not been made
- Source insight上修改samba共享ubuntu上内核源程序文件出现"Confirm by typing ‘yes' below"、"has been changed outside o
- PHPExcel的exception 'Exception' with message 'The filename is not recognised as an OLE file问题解决
- The reference to entity "characterEncoding" must end with the ';' delimiter
- Exception in thread "main" org.hibernate.AnnotationException: List/array has to be annotated with an