やろうとしていたのは以下のようなこと
OSVERSIONINFOEX os = {0};
os.dwOSVersionInfoSize = sizeof(os);
GetVersionEx((OSVERSIONINFO*)&os);
switch ( os.dwMajorVersion ) {
case 6:
switch ( os.dwMinorVersion ) {
case 0: return "Vista";
case 1: return "Win7";
case 2: return "Win8";
case 3: return "Win8.1";
}
break;
}
ところが、上記 os.dwMinorVersionの値が、Win8.1 上で実行しても Win8 を示す 2が返ってきてしまったのだ(本来 3が返ってきてほしかった)
MSDNで質問してみたら、すぐに回答が付き、理由がわかった
要は GetVersionEx はマニフェストに応じて異なるバージョンを返すということだった(なぜそうしたかの合理的な理由は思い浮かばなかったが、ま、しょうがない)
GetVersionEx の解説
【このカテゴリーの最新記事】
- no image
- no image
- no image
- no image
- no image