因为前一段时间的项目中,需要检查当前系统的版本,使用了这个函数取得当前的系统的信息。

OSVERSIONINFO osvi;
// Initialize the OSVERSIONINFO structure.

ZeroMemory( &osvi,
sizeof( osvi ) );

osvi.dwOSVersionInfoSize =
sizeof( osvi );
首先,定义OSVERSIONINFO,然后初始化,就是先把整个数据结构清零,然后填充整个结构体的大小。如果没有这个过程,调用GetVersionEx这个函数必然返回 FALSE。
然后调用这个函数:

CString strOSVersion;
if (GetVersionEx( &osvi ))

{
if (GetVersionEx(&osvi))

{
switch (osvi.dwPlatformId)

{
case VER_PLATFORM_WIN32_NT:
if (osvi.dwMajorVersion == 5 && osvi.dwMinorVersion == 0)

strOSVersion = _T(
"Windows 2000");
else if (osvi.dwMajorVersion == 5 && osvi.dwMinorVersion == 1)

strOSVersion = _T(
"Windows XP");
else if (osvi.dwMajorVersion == 4 && osvi.dwMinorVersion == 0)

strOSVersion = _T(
"Windows NT");
break;
case VER_PLATFORM_WIN32_WINDOWS:
if (osvi.dwMajorVersion == 4 && osvi.dwMinorVersion == 10)

strOSVersion = _T(
"Windows 98");
else if (osvi.dwMajorVersion == 4 && osvi.dwMinorVersion == 90)

strOSVersion = _T(
"Windows ME");
else 
strOSVersion = _T(
"Windows 95");
break;
default:
break;
// should not come here 
}

}

CString strBuildID;

strBuildID.Format(
"Build ID:%d",osvi.dwBuildNumber);

m_List.InsertItem (0, strOSVersion);

m_List.InsertItem(1,osvi.szCSDVersion);

m_List.InsertItem(2,strBuildID);
这个就取得了当前操作系统的版本信息。
本文的界面使用了BCGControlBar界面库,若想编译成功,请安装界面库。
转载于:https://blog.51cto.com/zjyzjy/72126