【问题标题】:How to get installed Windows SDK version?如何获取安装的 Windows SDK 版本?
【发布时间】:2011-02-09 13:55:58
【问题描述】:

如何确定我的计算机上安装了哪个版本的Windows SDK

我问的是如果尚未安装最新版本,我可以安装它。

【问题讨论】:

    标签: c++ winapi


    【解决方案1】:

    查看控制面板/卸载程序。 “Windows 软件开发工具包 - Windows X.X.X.X”(其中 X.X.X.X 是版本)。它将列在您机器上安装的所有其他软件中。

    【讨论】:

      【解决方案2】:

      如果您安装了 Visual Studio,您可以打开一个 Visual Studio 解决方案(或自己创建一个),然后在解决方案资源管理器中右键单击该解决方案,然后选择 Retarget Solution。该菜单应为您提供可用 Windows SDK 版本的下拉列表。

      【讨论】:

        【解决方案3】:

        如果您需要在编译时确定正在使用的 Windows SDK 的主要操作系统版本,那么您可以使用在 ntverp.h 中定义的 VER_PRODUCTBUILD 宏。例如:

        #include <ntverp.h>
        #if VER_PRODUCTBUILD > 9600
        // Windows 10+ SDK code goes here
        #else
        // Windows 8.1- SDK code goes here
        #endif
        

        在大多数情况下,这不是必需的,因为产品应该设计为使用特定平台 SDK 构建。但是对于一些大型产品,可能需要支持多个平台的 SDK。这在从一个迁移到另一个时特别有用。如果头文件中存在错误(例如 Windows 8.1 SDK 版本的 bthledef.h 中的虚假“#pragma pop”),那么您可能需要解决此错误,但在使用 Windows 10 SDK 时不包括该解决方法或更高。如果未安装所需的 SDK 版本,此技术还可用于提供有用的错误消息。

        请注意,VER_PRODUCTBUILD 仅提供主要操作系统版本信息,例如 8.1 与 10。这意味着 VER_PRODUCTBUILD 越来越无用,因为它不会随着 Windows 10 的更新而改变。因此,更可能查看的是 sdkddkver。 h 和 NTDDI_WIN10_* 宏。从 Windows 10.0.17763.0 SDK 开始,现在定义了 NTDDI_WIN10_RS5。所以,写这样的代码:

        #include <sdkddkver.h>
        #if !defined(NTDDI_WIN10_RS5)
            #error Windows 10.0.17763.0 SDK is required
        #endif
        

        【讨论】:

        • 这几天好像也可以用WDK_NTDDI_VERSION了!
        【解决方案4】:

        对于最新版本,请在此注册表项下检查:

        HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows Kits
        

        或以下:

        C:\Program Files (x86)\Microsoft SDKs\Windows Kits
        

        【讨论】:

          【解决方案5】:

          Windows SDK 的当前版本存储在以下注册表项的CurrentVersion 值中:

          HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SDKs\Windows
          

          并且可以使用这个 PowerShell 单线检索它:

          $(Get-Item "hklm:\SOFTWARE\Microsoft\Microsoft SDKs\Windows").GetValue("CurrentVersion")
          

          【讨论】:

          • Get-Item : Cannot find path 'HKLM:\SOFTWARE\Microsoft\Microsoft SDKs\Windows' because it does not exist. - 运行 Windows 10,知道会发生什么吗?
          • @YousufAzad,我迟到了,但它(再次)是 Win32 / Win64 的小插曲。寻找HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Microsoft SDKs\Windows(注意中间的WOW6432Node
          • HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Microsoft SDKs\Windows\ 也适用于我。
          【解决方案6】:

          至少在英语语言环境中:

          dir "%ProgramFiles%\Microsoft SDKs\Windows"
          

          应该可以。很可能会安装多个版本,只有该项目才能指定一个构建的正确版本。

          【讨论】:

          • Windows 10 SDK 版本 10.0.17763.1 已安装在“%\Program Files (x86)\Windows Kits\10”文件夹中
          猜你喜欢
          • 2021-08-09
          • 1970-01-01
          • 2017-07-01
          • 1970-01-01
          • 2017-02-08
          • 1970-01-01
          • 2017-12-16
          • 2023-03-28
          • 2016-02-24
          相关资源
          最近更新 更多