hur.cn - 华软网

 热门搜索

请教下GetVersionEx()的用法

  作者:未知    来源:网络    更新时间:2011/1/13
C++">
LPOSVERSIONINFO  wininfo;
GetVersionEx(wininfo);//此处异常
wininfo->dwPlatformId;//猎取系统版本

用的是vs008 跑到GetVersionEx(wininfo);//此处异常


---华软 网友回答---
#include <windows.h>
#include <stdio.h>

void main()
{
    OSVERSIONINFO osvi;
    BOOL bIsWindowsXPorLater;

    ZeroMemory(&osvi, sizeof(OSVERSIONINFO));
    osvi.dwOSVersionInfoSize = sizeof(OSVERSIONINFO);

    GetVersionEx(&osvi);

    bIsWindowsXPorLater = 
       ( (osvi.dwMajorVersion > 5) ||
       ( (osvi.dwMajorVersion == 5) && (osvi.dwMinorVersion >= 1) ));

    if(bIsWindowsXPorLater)
        printf("The system meets the requirements.\n");
    else printf("The system does not meet the requirements.\n");
}

---华软网友回复---
C++">
#include <windows.h>
#include <stdio.h>

#define BUFSIZE 80

int main()
{
    OSVERSIONINFOEX osvi;
    BOOL bOsVersionInfoEx;

    // Try calling GetVersionEx using the OSVERSIONINFOEX structure.
    // If that fails, try using the OSVERSIONINFO structure.

    ZeroMemory(&osvi, sizeof(OSVERSIONINFOEX));
    osvi.dwOSVersionInfoSize = sizeof(OSVERSIONINFOEX);

    if (!(bOsVersionInfoEx = GetVersionEx((OSVERSIONINFO *) & osvi)))
    {
        osvi.dwOSVersionInfoSize = sizeof(OSVERSIONINFO);
        if (! GetVersionEx((OSVERSIONINFO *) &osvi))
            return FALSE;
    }

    switch (osvi.dwPlatformId)
    {
            // Test for the Windows NT product family.
        case VER_PLATFORM_WIN32_NT:

            // Test for the specific product.
            if (osvi.dwMajorVersion == 6 && osvi.dwMinorVersion == 0)
                printf("Microsoft Windows Vista \n");

            if (osvi.dwMajorVersion == 5 && osvi.dwMinorVersion == 2)
                printf("Microsoft Windows Server 2003 \n");

            if (osvi.dwMajorVersion == 5 && osvi.dwMinorVersion == 1)
                printf("Microsoft Windows XP \n");

            if (osvi.dwMajorVersion == 5 && osvi.dwMinorVersion == 0)
                printf("Microsoft Windows 2000 \n");

            if (osvi.dwMajorVersion <= 4)
                printf("Microsoft Windows NT \n");
            // Test for specific product on Windows NT 4.0 SP6 and later.
    }
    return 0;
}


     
华软声明:本内容来自网络,如有侵犯您版权请来信指出,本站立即删除。