根据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,那么那些可以替换的函数会被替换吗?对于其余的情况,警告会被抑制吗?我不确定如何测试这一点,因为如果我添加了这两个,所有的警告将有效地被抑制,但我不知道这是否只是由于第二个标志。
发布于 2013-04-26 19:39:58
是的,您可以同时使用这两种方法,而且它们所做的正是您所期望的。
您可以查看crtdefs.h头文件。在定义_CRT_SECURE_NO_WARNINGS的情况下,它不会在_CRT_INSECURE_DEPRECATE引用的位置生成警告。
_CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES控制其他宏,如__DEFINE_CPP_OVERLOAD_STANDARD_FUNC_ ...等。
https://stackoverflow.com/questions/16234318
复制相似问题