如何使用C++准确获取Windows操作系统版本?

Aus*_*tin 1 c++ windows version

我看到的每个链接总是提到GetVersionEx,但这似乎没有用.

我的方法看起来像这样,

static int windowsVersion() {
       OSVERSIONINFO osvi;

   ZeroMemory(&osvi, sizeof(OSVERSIONINFO));
   osvi.dwOSVersionInfoSize = sizeof(OSVERSIONINFO);
   GetVersionEx(&osvi);
   return osvi.dwMajorVersion;
}
Run Code Online (Sandbox Code Playgroud)

我正在运行Windows 8,而它返回6.

如果我正在尝试准确地获取他们的Windows版本,那不是很有帮助.

注意:我还检查了所有其他变量.dwMinorVersion返回4,内部版本号返回类似8400的内容.

qeh*_*hgt 5

手动:对于Windows 8,dwMajorVersion是6并且dwMinorVersion是2