Windowsのバージョンを取得する
===========================
最新のC++Builderでコンパイルすると、`GetVersionExW` 関数を使っていると以下の警告がでた。(今後推奨されない関数との事)
```
[bcc32c 警告] UEnv.cpp(376): 'GetVersionExW' is deprecated
sysinfoapi.h(383): 'GetVersionExW' has been explicitly marked deprecated here
```
その対応について備忘録を残す。
TOSVersion構造体を利用
---------------------
[[http://docwiki.embarcadero.com/Libraries/Rio/ja/System.SysUtils.TOSVersion|TOSVersion構造体]]を利用し、Windowsバージョンを以下の方法で取得。
### メジャーバージョン
[[http://docwiki.embarcadero.com/Libraries/XE3/ja/System.SysUtils.TOSVersion.Major|TOSVersion.Major]]で取得できる。
int majorVersion = TOSVersion::Major;
### マイナーバージョン
[[http://docwiki.embarcadero.com/Libraries/XE3/ja/System.SysUtils.TOSVersion.Minor|TOSVersion.Minor]]で取得できる。
int minorVersion = TOSVersion::Minor;
OSの識別
--------
Windowsの各バージョンの値は次のようになっている。
^ OS種類 ^ メジャーバージョン ^ マイナーバージョン ^ 備考 ^
| Windows 95 | 4 | 0 | |
| Windows 98 | 4 | 10 | |
| Windows Me | 4 | 90 | |
| Windows NT 4.0 | 4 | 0 | `WIN32_NT`プラットフォーム |
| Windows 2000 | 5 | 0 | |
| Windows XP | 5 | 1 | |
| Windows 2003 | 5 | 2 | |
| Windows Vista | 6 | 0 | |
| Windows 7 | 6 | 1 | |
| Windows 8 | 6 | 2 | |
| Windows 8.1 | 6 | 3 | |
| Windows 10 | 10 | 0 | |
参考
----
1. [[https://www.gesource.jp/programming/bcb/77.html|Windowsのバージョンを取得する]]