禁用通过 _CRT_SECURE_NO_DEPRECATE 生成的警告

2021-12-22 00:00:00 visual-studio visual-c++ c++

禁用通过 _CRT_SECURE_NO_DEPRECATE 生成的警告的最佳方法是什么,以便轻松恢复它们并在 Visual Studio 版本中工作?

What is the best way to disable the warnings generated via _CRT_SECURE_NO_DEPRECATE that allows them to be reinstated with ease and will work across Visual Studio versions?

推荐答案

如果你不想污染你的源代码(毕竟这个警告只在微软编译器中出现),添加 _CRT_SECURE_NO_WARNINGS 符号通过项目"->属性"->配置属性"->C/C++"->预处理器"->预处理器定义"到您的项目设置.

If you don't want to pollute your source code (after all this warning presents only with Microsoft compiler), add _CRT_SECURE_NO_WARNINGS symbol to your project settings via "Project"->"Properties"->"Configuration properties"->"C/C++"->"Preprocessor"->"Preprocessor definitions".

您也可以在包含生成此警告的头文件之前定义它.你应该添加这样的东西

Also you can define it just before you include a header file which generates this warning. You should add something like this

#ifdef _MSC_VER
#define _CRT_SECURE_NO_WARNINGS
#endif

请注意,请确保您了解此警告的含义,并且如果您不打算使用 MSVC 以外的其他编译器,请考虑使用更安全的函数版本,即 strcpy_s 而不是 strcpy.

And just a small remark, make sure you understand what this warning stands for, and maybe, if you don't intend to use other compilers than MSVC, consider using safer version of functions i.e. strcpy_s instead of strcpy.

相关文章