我用几行代码在向导生成的简单MFC窗口应用程序中编译了错误:
错误C4996:'strncpy':这个函数或变量可能不安全。考虑使用strncpy_s代替。若要禁用弃用,使用_CRT_SECURE_NO_WARNINGS。有关详细信息,请参阅联机帮助。
我设置了Configuration Properties>>C/C++>>Preporocessor>>Preprocessor Definitions>> _CRT_NONSTDC_NO_WARNINGS
但这没什么用。我有另一个非常接近的项目,它只在这里生成警告,而且它没有_CRT_NONSTDC_NO_WARNINGS定义。
只有项目之间的不同是向导中的几个不同选项。
为什么_CRT_NONSTDC_NO_WARNINGS在第一个项目中没有帮助,为什么第二个项目在没有这个定义的情况下编译时没有问题?
发布于 2014-03-17 09:37:26
加法
配置Properties>>C/C++>>Preporocessor>>Preprocessor Definitions>> _CRT_SECURE_NO_WARNINGS

发布于 2015-02-15 10:59:03
在"Project -> Properties -> C/C++ ->预处理器->预处理器定义“下添加_CRT_SECURE_NO_WARNINGS
发布于 2015-03-20 16:05:42
如果您在Visual 2012或更高版本中,则在属性页-> C/C++ -> General下有一个附加设置“SDL检查”
其他安全开发生命周期(SDL)建议检查;包括启用额外的安全代码生成特性和额外的与安全性相关的错误警告。
它默认为YES --原因是,您应该使用strncpy的安全版本。如果将此更改为“否”,则在使用不安全版本时不会出现错误。
https://stackoverflow.com/questions/22450423
复制相似问题