使用函数IsWin2000()会产生C ++警告:C4996 - 不推荐使用的函数

时间:2011-07-01 01:07:47

标签: c++ winapi warnings deprecated suppress-warnings

因此,当我使用函数IsWin2000()来判断运行我的应用程序的计算机是否正在运行Windows 2000时,我收到警告:

warning C4996: 'IsWin2000': This function is exported to support existing modules and is obsolete.

如果这是一个过时的,已弃用的函数,那么查询正在运行的操作系统的正确方法是什么?有没有其他方法可以完成这项任务,或者是我唯一的选择来简单地抑制警告?谢谢!

2 个答案:

答案 0 :(得分:3)

GetVersionEx

请参阅OSVERSIONINFO的备注,了解结果列表以及如何解释它们。有关完整的示例,请参阅Getting the System Version

不要忘记规范的内容:

  

识别当前的操作   系统通常不是最好的方法   确定是否特定   存在操作系统功能。   这是因为操作系统   可能已经添加了新功能   可再发行的DLL。而不是使用   GetVersionEx确定了   操作系统平台或版本   数字,测试的存在   功能本身

答案 1 :(得分:2)

这不是标准的Windows API函数。也许如果你提到它的位置,我们可以提供更多信息。

正确的方法取决于你想要完成的事情。创建调试日志或错误报告时,应调用GetVersionEx

出于任何其他目的,您应该测试您尝试使用的实际功能,通常使用GetProcAddress,而不是硬编码版本测试。