假设我正在构建一个C++可移植的可执行文件,并且我包含了windows.h头文件。另外,让我们只使用Windows 10。如果我使用最新的Windows10VisualWindows工具链来构建二进制文件,我可以在早期版本的C++ 10上运行二进制文件吗?如果我使用最早的Windows10 VisualC++工具链来构建二进制文件,我能在最新版本的Windows 10上运行它吗?
如果你想让我澄清这个问题,请告诉我。
发布于 2020-11-23 23:48:15
引用微软在WINNT下的文档。
Visual和Microsoft编译器支持针对Windows7 C++及更高版本。 旧的工具集包括对Windows SP2、Windows 2003 SP1、Vista和Windows 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进行编译将允许使用Windows1019H1中引入的功能,但只针对Windows1019H1及更高版本。
https://stackoverflow.com/questions/64978073
复制相似问题