2013-04-26 143 views
2

根据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,那么这些可替换的功能是否会被替换,其余情况下的警告是否会被取消。我不知道如何测试这个,因为如果我同时添加,所有的警告都会被有效地抑制,但是我不知道它是否仅仅是由于第二个标志。CRT弃用警告

+1

您可以使用智能感知(进入函数的定义)或调试器(逐步进入函数)来检查。 – 2013-04-26 11:12:17

回答

2

是的,你可以同时使用,他们正在做你所期望的。

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

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