根据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,那么可以替换那些可以替换的函数,并且对于其余情况,将禁止警告。我不确定如何测试这个,因为如果我添加两个,所有警告都会被有效地抑制,但我不知道是否仅仅是由于第二个标志。
答案 0 :(得分:2)
是的,您可以同时使用它们,它们正在完全按照您的预期进行操作。
您可以查看crtdefs.h
标头文件。如果您定义_CRT_SECURE_NO_WARNINGS
,它就不会生成警告来代替_CRT_INSECURE_DEPRECATE
引用。
_CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES
控制其他宏,例如__DEFINE_CPP_OVERLOAD_STANDARD_FUNC_ ...
等。