-1

現在の Windows バージョンを識別する C++ プログラムを作成しようとしています。そのような質問と回答を何十も見ましたが、どれもうまくいきませんでした。

Windows 10 Home エディションを実行しています。

Visual Studio 2015 を使用しています。

私が試した最初のオプション:

    OSVERSIONINFO osvi;
    ZeroMemory(&osvi, sizeof(OSVERSIONINFO));
    osvi.dwOSVersionInfoSize = sizeof(OSVERSIONINFO);
    GetVersionEx(&osvi);
    cout << osvi.dwMajorVersion << endl;
    cout << osvi.dwMinorVersion << endl;

これは、MSDNによるとWindows 8に対応する6と2を出力します。

私が試した2番目のオプション:

#include <VersionHelpers.h>

if (IsWindowsVistaOrGreater())
    printf("VistaOrGreater\n");
if (IsWindows7OrGreater())
    printf("Windows7OrGreater\n");
if (IsWindows8OrGreater())
    printf("Windows8OrGreater\n");
if (IsWindows8Point1OrGreater())
    printf("Windows8Point1OrGreater\n");
if (IsWindows10OrGreater())
    printf("Windows10OrGreater\n");

このように、IsWindows10OrGreater()は私のシステムでは定義されておらず、コンパイル エラーが発生します。

これについて何か助けはありますか?

4

1 に答える 1

2

Windows 8.1 および Windows 10 では、GetVersion および GetVersionEx 関数は非推奨になりました。Windows 8.1 または Windows 10 用にマニフェストされていないアプリケーションは、Windows 8 OS バージョンの値 (6.2) を返します。

詳細については、「アプリケーションを Windows に向ける」を参照してください。

于 2016-10-12T13:14:15.683 に答える