在 C++ 中使用 Windows 10 SDK 以 Windows 8.1 为目标

Targetting Windows 8.1 with Windows 10 SDK in C++

我们目前使用 Visual Studio 2017 构建我们的 C++ 代码,直到最近我们才被要求在 Windows 7 上拥有我们的二进制文件 运行。

因此,我们在 C++ 项目中为要使用的 Windows SDK 版本设置的是“8.1”,通过将 _WIN32_WINNT=0x601 定义为预处理器宏,我们的目标是 Windows 7作为一个平台,微软在各个地方都推荐。

现在我们要添加 ARM64 作为新平台,但这需要将 Windows SDK 版本设置为 10.0.10240.0,因为要使用的 Windows SDK 版本是一个项目全局设置,这也会影响我们为(Win32 和 x64)构建的现有其他平台。

现在,如果我们将 Windows SDK 版本从 8.1 设置为 10.0.10240.0(或更高版本),我们是否会失去 运行 我们的代码在 Windows 8.1 上的能力,只要我们使用 _WIN32_WINNT=0x602(针对 Windows 8.1)?

俞敏欣的评论就是对这个问题的回答。 This discussion 指向明确指出当前 Win10 SDK 允许针对 Windows 7 SP1 和 Windows 8.1.

Windows SDK page