根据Security Enhancements in the CRT和 Secure 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/