【问题标题】:Use of the function IsWin2000() produces a C++ warning: C4996 - Deprecated Function使用函数 IsWin2000() 会产生 C++ 警告:C4996 - 已弃用函数
【发布时间】:2011-07-01 01:07:46
【问题描述】:

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

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

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

【问题讨论】:

  • 你根本不应该这样做。你为什么要调用这个函数?

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


【解决方案1】:

GetVersionEx

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

别忘了规范是怎么说的:

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

【讨论】:

    【解决方案2】:

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-09-19
      • 1970-01-01
      相关资源
      最近更新 更多