使用gcc c ++获取Windows版本

时间:2016-07-05 10:58:26

标签: c++ windows gcc codeblocks

我确定这个问题有些奇怪,但我正在使用Code :: Blocks和GCC。 要在我的项目中使用某些特定功能,我需要确定在用户计算机中安装了哪个版本的Windows。

使用VS2013 / 15,我们可以使用VersionHelpers.h和IsWindowsXXXOrGreater()。但是GCC C ++呢?

1 个答案:

答案 0 :(得分:2)

即使使用GCC或Clang或其他编译器,您仍然使用VersionHelpers.h。这些函数与Visual C ++无关。它们是Windows SDK的一部分,所有Windows应用程序都必须使用它。

您可以download the Windows SDK from Microsoft并在开发计算机上安装它(如果尚未安装)。安装完成后,您需要告诉Code :: Blocks它可以找到SDK的头文件和LIB文件的路径。

VersionHelpers.h将位于这些标头中(但您需要包含的是Windows.h)。 VersionHelpers.h文件定义了一系列内联函数,这些函数最终调用从kernel32.libntdll.lib导出的函数。只要链接器可以找到那些LIB文件,一切都将按预期工作。

但请注意,很少需要确定Windows的实际版本。相反,您应该检查是否支持您需要的功能。如果要调用可能不可用的API函数(例如,仅在Windows 10上支持该函数,而您仍需要支持旧版本),则应GetModuleHandle组合LoadLibraryGetProcAddressLoadLibrary。 (如果您致电FreeLibrary,则必须在完成后致电main=list("My graph title",cex=2.8)。)