You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在编译时获取程序所使用的Windows SDK版本号

获取编译时使用的Windows SDK完整版本号

你当前的方法解析的WDK_NTDDI_VERSION是Windows操作系统的版本标识,并非SDK的实际build号(比如22621),所以得到的是10.0.12而非目标版本。要获取SDK的完整版本号(如10.0.22621.0),可以利用Windows SDK头文件中预定义的版本宏:

  • _WIN32_WINNT_MAJOR:主版本号(比如10)
  • _WIN32_WINNT_MINOR:次版本号(比如0)
  • _WIN32_WINNT_BUILD:Build号(比如22621)
  • 修订号通常为0(大部分SDK版本的修订号都是0)

代码实现(C++)

#include <iostream>
#include <sstream>
#include <windows.h>

std::string GetSDKVersion() {
    std::ostringstream oss;
    oss << _WIN32_WINNT_MAJOR << "." 
        << _WIN32_WINNT_MINOR << "." 
        << _WIN32_WINNT_BUILD << ".0";
    return oss.str();
}

int main() {
    std::cout << "当前使用的Windows SDK版本:" << GetSDKVersion() << std::endl;
    return 0;
}

代码实现(C)

#include <stdio.h>
#include <windows.h>

const char* GetSDKVersion() {
    static char versionStr[32];
    snprintf(versionStr, sizeof(versionStr), "%d.%d.%d.0",
             _WIN32_WINNT_MAJOR,
             _WIN32_WINNT_MINOR,
             _WIN32_WINNT_BUILD);
    return versionStr;
}

int main() {
    printf("当前使用的Windows SDK版本:%s\n", GetSDKVersion());
    return 0;
}

说明

这些宏定义在Windows SDK的winnt.h头文件中,会根据你编译时选择的SDK版本自动填充对应的值。编译后运行程序,就能输出类似10.0.22621.0的完整SDK版本号。

内容的提问来源于stack exchange,提问作者Jabberwocky

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.14 04:35:13