因为前一段时间的项目中,需要检查当前系统的版本,使用了这个函数取得当前的系统的信息。
 
InBlock.gif    OSVERSIONINFO           osvi;
InBlock.gif  
InBlock.gif    // Initialize the OSVERSIONINFO structure.
InBlock.gif  
InBlock.gif    ZeroMemory( &osvi, sizeof( osvi ) );
InBlock.gif    osvi.dwOSVersionInfoSize = sizeof( osvi );
 
       首先,定义OSVERSIONINFO,然后初始化,就是先把整个数据结构清零,然后填充整个结构体的大小。如果没有这个过程,调用GetVersionEx这个函数必然返回 FALSE。
       然后调用这个函数:
InBlock.gif    CString strOSVersion;
InBlock.gif    if (GetVersionEx( &osvi ))
InBlock.gif    {
InBlock.gif  if   (GetVersionEx(&osvi))    
InBlock.gif  {    
InBlock.gif      switch   (osvi.dwPlatformId)    
InBlock.gif      {    
InBlock.gif      case   VER_PLATFORM_WIN32_NT:    
InBlock.gif    if   (osvi.dwMajorVersion   ==   5   &&   osvi.dwMinorVersion   ==   0)    
InBlock.gif        strOSVersion   =   _T("Windows 2000");    
InBlock.gif    else   if   (osvi.dwMajorVersion   ==   5   &&   osvi.dwMinorVersion   ==   1)    
InBlock.gif        strOSVersion   =   _T("Windows XP");    
InBlock.gif    else   if   (osvi.dwMajorVersion   ==   4   &&   osvi.dwMinorVersion   ==   0)    
InBlock.gif        strOSVersion   =   _T("Windows NT");    
InBlock.gif    break;    
InBlock.gif    
InBlock.gif      case   VER_PLATFORM_WIN32_WINDOWS:    
InBlock.gif    if   (osvi.dwMajorVersion   ==   4   &&   osvi.dwMinorVersion   ==   10)    
InBlock.gif        strOSVersion   =   _T("Windows 98");    
InBlock.gif    else   if   (osvi.dwMajorVersion   ==   4   &&   osvi.dwMinorVersion   ==   90)    
InBlock.gif        strOSVersion   =   _T("Windows ME");    
InBlock.gif    else    
InBlock.gif        strOSVersion   =   _T("Windows 95");    
InBlock.gif    break;    
InBlock.gif      default:    
InBlock.gif    break;         //   should   not   come   here    
InBlock.gif      }    
InBlock.gif  }    
InBlock.gif  CString strBuildID;
InBlock.gif  strBuildID.Format("Build ID:%d",osvi.dwBuildNumber);
InBlock.gif  m_List.InsertItem (0, strOSVersion);
InBlock.gif  m_List.InsertItem(1,osvi.szCSDVersion);
InBlock.gif  m_List.InsertItem(2,strBuildID);
 
      这个就取得了当前操作系统的版本信息。
     本文的界面使用了BCGControlBar界面库,若想编译成功,请安装界面库。