OSVERSIONINFO osvi;
ZeroMemory(&osvi, sizeof(OSVERSIONINFO));
osvi.dwOSVersionInfoSize = sizeof(OSVERSIONINFO);
GetVersionEx(&osvi);
// 通过osvi这个结构体信息来获取操作系统信息
typedef struct _OSVERSIONINFO {
DWORD dwOSVersionInfoSize;
DWORD dwMajorVersion; // 主版本号
DWORD dwMinorVersion; // 次版本号
DWORD dwBuildNumber; // 构建号
DWORD dwPlatformId;
TCHAR szCSDVersion[128]; // SP名称
ZeroMemory(&osvi, sizeof(OSVERSIONINFO));
osvi.dwOSVersionInfoSize = sizeof(OSVERSIONINFO);
GetVersionEx(&osvi);
// 通过osvi这个结构体信息来获取操作系统信息
typedef struct _OSVERSIONINFO {
DWORD dwOSVersionInfoSize;
DWORD dwMajorVersion; // 主版本号
DWORD dwMinorVersion; // 次版本号
DWORD dwBuildNumber; // 构建号
DWORD dwPlatformId;
TCHAR szCSDVersion[128]; // SP名称
} OSVERSIONINFO;
扩展后的OS信息结构体增加了SP版本信息等等
typedef struct _OSVERSIONINFOEX {
DWORD dwOSVersionInfoSize;
DWORD dwMajorVersion; // 主版本号
DWORD dwMinorVersion; // 次版本号
DWORD dwBuildNumber; // 构建号
DWORD dwPlatformId;
TCHAR szCSDVersion[128]; // SP名称
WORD wServicePackMajor; // SP主版本号
WORD wServicePackMinor; // SP次版本号
WORD wSuiteMask;
BYTE wProductType; // 类型
BYTE wReserved;
} OSVERSIONINFOEX, *POSVERSIONINFOEX, *LPOSVERSIONINFOEX;
上图是MSND中对OS信息结构体版本的描述
msdn提供了获取系统版本的示例
http://msdn.microsoft.com/en-us/library/ms724429(v=vs.85).aspx