2011-07-01 23 views
0

所以,当我使用的功能,IsWin2000(),找出计算机是否不运行我的应用程序运行的是Windows 2000,我得到的警告:使用功能IsWin2000(的产生C++警告:C4996 - 过时的功能

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

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

+0

你不应该在所有这样做。你为什么要调用这个函数? – SLaks

回答

3

GetVersionEx

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

,并让不要忘记了规范说:

识别当前运行 系统通常不是 的最佳方式确定特定 操作系统特性是否存在。 这是因为操作系统 可能已经在 再发行的DLL添加的新功能。而不是使用 GetVersionEx来确定 操作系统平台或版本号 ,试作 特征的存在本身

2

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

的正确方法取决于你所要完成的任务。创建调试日志或错误报告,您应该致电GetVersionEx

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