我正在开发一些应用程序(MSVC ++),我总是遇到弃用警告。总的来说,在这个问题中我要问我可以说我使用标准的C90:
fopen()
在
fopen_s() <- as msvc++ suggests for me to use
这是否意味着在编译我的应用程序之后,让我们说一个Windows 8用户想要使用它,他会从中获得更少的功能,在较小的条件下,这是否意味着当他运行应用程序然后fopen()功能将被识别,因为它被“弃用”(我认为这意味着它已经过时了)?
另外,如果说我是否使用它并不重要,MSVC ++说我可以使用_CRT_SECURE_NO_WARNINGS标志来忽略弃用,如果是这样,我在哪里可以包含这个标志,以便它忽略警告?
答案 0 :(得分:4)
对于MSVC运行时函数,不,如果使用fopen()
等弃用函数,则不存在兼容性问题的风险。
fopen()
的代码存在于MSVC运行时库中,您的应用程序要么(a)静态链接该库,要么(b)使用特定版本的DLL。应用程序使用的DLL版本在您的应用程序运行的任何位置都是相同的,因此您不必担心Windows 8没有适当的DLL。
MSDN文档Security Features in the CRT声明:
在此上下文中,“弃用”仅表示不建议使用函数;它并不表示该功能已安排从CRT中删除。