GetVersionEx

https://msdn.microsoft.com/ja-jp/library/ms724834.aspx https://msdn.microsoft.com/ja-jp/library/ms724833.aspx https://msdn.microsoft.com/ja-jp/library/cc428944.aspx https://msdn.microsoft.com/ja-jp/library/ms724834.aspx https://msdn.microsoft.com/ja-jp/library/ms724833.aspx https://msdn.microsoft.com/ja-jp/library/ms724832.aspx https://msdn.microsoft.com/ja-jp/library/ms724429.aspx https://msdn.microsoft.com/ja-jp/library/ms724834.aspx https://msdn.microsoft.com/ja-jp/library/ms724833.aspx

現在動作しているオペレーティングシステムのバージョンに関する拡張情報を取得します。

Windows 2000:現在のシステムのバージョンを、必要とされるバージョンと比較する場合、GetVersionEx 関数を使って自力でその結果を比較する代わりに、VerifyVersionInfo 関数を使ってください。

BOOL GetVersionEx(
  LPOSVERSIONINFO lpVersionInfo // バージョン情報
);

パラメータ

lpVersionInfo
1 個の 構造体へのポインタを指定します。関数から制御が返ると、この構造体に、オペレーティングシステムのバージョン情報が格納されます。

この関数を呼び出す前に、OSVERSIONINFO 構造体の dwOSVersionInfoSize メンバを、sizeof(OSVERSIONINFO) に設定してください。

Windows 2000:このメンバで、1 個の 構造体へのメンバを指定できます。その場合、構造体のタイプを識別するために、dwOSVersionInfoSize メンバを sizeof(OSVERSIONINFOEX) に設定してください。

戻り値

関数が成功すると、0 以外の値が返ります。

関数が失敗すると、0 が返ります。拡張エラー情報を取得するには、 関数を使います。 または 構造体の dwOSVersionInfoSize メンバで無効な値を指定すると、この関数は失敗します。

解説

関数を使って、アプリケーションが特定のバージョンのオペレーティングシステム上で動作しているかどうかを調べる場合、希望のバージョン番号およびそれより大きいバージョン番号であるかどうかをチェックしてください。この結果、オペレーティングシステムの新しいバージョンが登場した場合でも、テストが成功することが保証されます。たとえば、アプリケーションが Windows 98 を必要とする場合、次のテストを実行してください。

osvi.dwOSVersionInfoSize = sizeof(OSVERSIONINFO)

GetVersionEx (&osvi);

bIsWindows98orLater =

   (osvi.dwPlatformId == VER_PLATFORM_WIN32_WINDOWS) &&

   ((osvi.dwMajorVersion> 4) ||

   ((osvi.dwMajorVersion == 4) && (osvi.dwMinorVersion> 0)));

オペレーティングシステムの特定の機能が存在するかどうかを判断することを目的としている場合、現在(開発時点で最新)のオペレーティングシステムのバージョン番号だけを指定する方法は、通常は最善とは言えません。再配布可能な DLL という形で、新しい機能が追加されている可能性もあるからです。このようなことを目的としている場合、GetVersionEx 関数を使ってオペレーティングシステムのプラットフォームまたはバージョン番号を判断する代わりに、その機能が存在するかどうかをテストしてください。詳細については、MSDN ライブラリの「」を参照してください。

MSDN ライブラリの「」を参照してください

対応情報

Windows NT/2000:Windows NT 3.5 以降
Windows 95/98:Windows 95 以降
ヘッダー:Winbase.h 内で宣言、Windows.h をインクルード
インポートライブラリ:Kernel32.lib を使用
Unicode:Windows NT/2000 は Unicode 版と ANSI 版を実装

参照

GetVersion, , , VerifyVersionInfo

表示: