c++ - CRT 弃用警告

标签 c++ visual-studio visual-c++ deprecated crt

根据Security Enhancements in the CRTSecure Template Overloads ,可以使用 _CRT_SECURE_NO_WARNINGS 禁用与因安全问题而弃用的函数相关的警告。还可以使用 _CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES 将某些函数替换为其更安全的对应函数。但是,有人知道两者是否可以同时使用。也就是说,如果我首先指定 _CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES,然后指定 _CRT_SECURE_NO_WARNINGS,那些可以替换的函数是否会被替换,并且对于其余情况,警告将被抑制。我不确定如何测试这一点,因为如果我添加两者,所有警告都将被有效抑制,但我不知道这是否只是由于第二个标志所致。

最佳答案

是的,您可以同时使用两者,而且它们所做的正是您所期望的。

您可以查看crtdefs.h头文件。如果您定义了_CRT_SECURE_NO_WARNINGS,它根本不会生成警告来代替_CRT_INSECURE_DEPRECATE引用。

_CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES 控制其他宏,例如 __DEFINE_CPP_OVERLOAD_STANDARD_FUNC_ ... 等。

关于c++ - CRT 弃用警告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16234318/

相关文章:

c++ - std::apply 和常量表达式?

C 函数未导出

c++ - 我可以进一步减少这个小型 MSVC++ 项目的 "private bytes"内存使用吗?

c++ - 如何在 C++ 中将字符串转换为 LPWSTR

c++ - C++/gcc/linux 中的 Continuations/Coroutines/Generators

c++ - 如何验证字符串中的最后四个字符是否在 1900 到 2000 的范围内?

c++ - 为什么 QFile::canReadLine() 总是返回 false?

c# - 用于创建派生类型的 Resharper 编辑模板

c# - 错误 : Reference to type claims it is defined, 但找不到

c# - Visual Studio-如何在调试器中更改方法的返回值?