Windows可执行文件向前和向后兼容吗



假设我正在构建一个C++可移植的可执行文件,并包含windows.h头。此外,让我们只使用Windows 10。如果我使用最新的Windows 10 Visual C++工具链来构建二进制文件,我可以在早期版本的Windows 10上运行二进制文件吗?如果我使用最早的Windows 10 Visual C++工具链来构建二进制文件,我可以在最新版本的Windows 10上运行它吗?

如果你想让我澄清这个问题,请告诉我。

引用Microsoft文档中的更新WINVER和_WIN32_WINNT。

Visual Studio和Microsoft C++编译器支持针对Windows 7 SP1及更高版本

较旧的工具集包括对Windows XP SP2、Windows Server 2003 SP1、Vista和Windows Server 2008的支持。

不支持Windows 95、Windows 98、Windows ME、Windows NT和Windows 2000

以具有默认#define的Windows 10为目标的应用程序将在所有版本的Windows 10下运行。

#define WINVER       0x0A00
#define _WIN32_WINNT 0x0A00

要使用在Windows 10的较新版本中引入的较新API,请参阅备注下以"开头的部分对于更细粒度的版本控制方法,可以使用sdkddkver.h中的NTDDI版本常量";,以及"使用Windows标头"页面。例如,使用#define _WIN32_WINNT 0x0A00#define NTDDI_VERSION NTDDI_WIN10_19H1进行编译将允许使用Windows 10 19H1中引入的功能,但仅针对Windows 10 19H1。

相关内容

最新更新