int GetOSVer() { OSVERSIONINFO osver; osver.dwOSVersionInfoSize = sizeof(OSVERSIONINFO); GetVersionEx(&osver); if(osver.dwPlatformId == 2) { if(osver.dwMajorVersion == 5 && osver.dwMinorVersion == 1) { printf("xp\n"); return(2); } if(osver.dwMajorVersion == 5 && osver.dwMinorVersion == 2) { printf("windows 2003\n"); return(3); } if(osver.dwMajorVersion == 6 && osver.dwMinorVersion == 0) { printf("vista and 2008\n"); return(4); } if(osver.dwMajorVersion == 6 && osver.dwMinorVersion == 1) { printf("2008 R2 and Windows 7\n"); return(5); } } return 0; }
主要是dwMajorVersion 和 dwMinorVersion 号码的判断。