API函数GetVersionEx能不能获得windows2003的版本信息?
谁能告诉我,不胜感谢!

解决方案 »

  1.   

    if( osvi.wProductType == VER_NT_SERVER ) {
                 if( osvi.wSuiteMask & VER_SUITE_DATACENTER )
                                lstrcat( szBuf,_T(" DataCenter Server") );
                            else if( osvi.wSuiteMask & VER_SUITE_ENTERPRISE )
                                lstrcat( szBuf,_T(" Advanced Server") );
                            else
                                lstrcat( szBuf,_T(" Server") );
      

  2.   

    好象还没看到哪个函数能判断操作系统windows2003呢,最高看到sever:)
      

  3.   

    if( osvi.dwMajorVersion == 5 && osvi.dwMinorVersion == 1 )
      

  4.   

    if ( osvi.dwMajorVersion == 5 && osvi.dwMinorVersion == 2 )
    其实你查查MSDN就知道了,有个例子,看看就明白了
      

  5.   

    我上面说错了,更正:   
    OSVERSIONINFOEX osvi;
    BOOL bOsVersionInfoEx;
    osvi.dwOSVersionInfoSize = sizeof(OSVERSIONINFOEX);
    if( !(bOsVersionInfoEx = GetVersionEx ((OSVERSIONINFO *) &osvi)) )
    {
    // If OSVERSIONINFOEX doesn't work, try OSVERSIONINFO.
    osvi.dwOSVersionInfoSize = sizeof (OSVERSIONINFO);
    if (! GetVersionEx ( (OSVERSIONINFO *) &osvi) ) 
    return -1;
    }
    switch (osvi.dwPlatformId)
    {
    case VER_PLATFORM_WIN32_NT:
    if ( osvi.dwMajorVersion == 4 && osvi.dwMinorVersion == 0)
    {//fprintf(stderr, "Microsoft Windows NT 4.0 ");
    }
    else if ( osvi.dwMajorVersion == 5 && osvi.dwMinorVersion == 0 )
    {
    //fprintf(stderr, "Microsoft Windows 2000 ");
    }
    else if ( osvi.dwMajorVersion == 5 && osvi.dwMinorVersion == 1 )
    {
    //fprintf(stderr, "Microsoft Windows XP ");
    }
    else if ( osvi.dwMajorVersion == 5 && osvi.dwMinorVersion == 2 )
    {//fprintf(stderr, "Microsoft Windows Server 2003 ");}