1

私が見るすべてのリンクには常に GetVersionEx が記載されていますが、あまり役に立ちません。

私の方法は次のようになります。

static int windowsVersion() {
       OSVERSIONINFO osvi;

   ZeroMemory(&osvi, sizeof(OSVERSIONINFO));
   osvi.dwOSVersionInfoSize = sizeof(OSVERSIONINFO);
   GetVersionEx(&osvi);
   return osvi.dwMajorVersion;
}

私はWindows 8を実行していますが、代わりに6を返します。

Windows のバージョンを正確に取得しようとしても、あまり役に立ちません。

注: 他のすべての変数もチェックしました。dwMinorVersion は 4 を返し、ビルド番号は 8400 のような値を返します。

4

3 に答える 3

5

手動:Windows 8の場合、dwMajorVersionは6で、dwMinorVersionは2です。

于 2012-10-15T04:17:23.757 に答える
3

メジャーバージョン番号とマイナーバージョン番号の両方を使用する必要があります。

Windows Vista 6.0.6000
Windows 76.1.7600PC
上のWindows864ビットバージョンは6.2.9200を返します

于 2012-10-15T04:17:22.530 に答える
3

6fordwMajorVersionは、Windows Vista 以降のあらゆるものを意味します。これが Microsoft のバージョン管理のしくみです。2fordwMinorVersionは、Windows 8 または Windows Server 2012 のいずれかである必要がありますwProductType == VER_NT_WORKSTATION

于 2012-10-15T04:20:22.023 に答える