0

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

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

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

4

2 回答 2

3

GetVersionEx

OSVERSIONINFO有关结果列表以及如何解释它们,请参见备注。有关完整示例,请参阅获取系统版本。

并且不要忘记规范所说的内容:

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

于 2011-07-01T01:13:40.120 回答
2

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

正确的方法取决于您要完成的工作。创建调试日志或错误报告,您应该调用GetVersionEx.

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

于 2011-07-01T01:09:53.717 回答