プログラムを組んでいると Win32s, Win9x, WinNT といったプラットフォームを判別したくなる時があります。そんな時は、次のようなコードが役に立つでしょう。
/*************************************************************
関数: INT WINAPI GetPlatformID(void);
説明: 現在実行中の OS のプラットフォームを示す ID を得る
引数: なし
戻値: 現在実行中の OS のプラットフォームを示す ID
VER_PLATFORM_WIN32s Win32s または Win3.1
VER_PLATFORM_WIN32_WINDOWS Win9x (Win95, Win98, など)
VER_PLATFORM_WIN32_NT WinNT
*************************************************************/
INT WINAPI GetPlatformID(void)
{
DWORD d = GetVersion();
if(HIWORD(d) & 0x8000u){
return LOBYTE(LOWORD(d)) < 4 ?
VER_PLATFORM_WIN32s: VER_PLATFORM_WIN32_WINDOWS;
} else {
return VER_PLATFORM_WIN32_NT;
}
}
|
by seclan