这样可以确定操作系统是32位的还是16位吗?
unsigned int i,j,k;i=~0;
j=>>31;
k=>>15;if (j)
    printf("32位操作系统");
else if (k)
    printf("16位操作系统");

解决方案 »

  1.   

    意思差不多,但是你的i没有用呀?而j和k没有初始化呀?
      

  2.   

    dwVersion = GetVision();dwWindowsMajorVersion =  (DWORD)(LOBYTE(LOWORD(dwVersion)));
    dwWindowsMinorVersion =  (DWORD)(HIBYTE(LOWORD(dwVersion)));if (dwVersion < 0x80000000)                // Windows NT
        dwBuild = (DWORD)(HIWORD(dwVersion));
    else if (dwWindowsMajorVersion < 4)        // Win32s
        dwBuild = (DWORD)(HIWORD(dwVersion) & ~0x8000);
    else         // Windows 95 -- No build numbers provided
        dwBuild =  0;
      

  3.   

    高,头次看见有人这么做。不知道可行不。如果是判断操作系统的类型,那倒是可以COPY一些代码过来。
      

  4.   

    MSDN里面的例子:
    dwVersion = GetVersion();
     
    // Get major and minor version numbers of Windows
    dwWindowsMajorVersion =  (DWORD)(LOBYTE(LOWORD(dwVersion)));
    dwWindowsMinorVersion =  (DWORD)(HIBYTE(LOWORD(dwVersion)));
    // Get build numbers for Windows NT or Win32s
    if (dwVersion < 0x80000000)                // Windows NT
        dwBuild = (DWORD)(HIWORD(dwVersion));
    else if (dwWindowsMajorVersion < 4)        // Win32s
        dwBuild = (DWORD)(HIWORD(dwVersion) & ~0x8000);
    else         // Windows 95 -- No build numbers provided
        dwBuild =  0;
    Platform        High order bit          Low order byte (major version number) 
    Windows NT            zero                       3 or 4 
    Windows 95 and          1                          4
    Windows 98
    Win32s with Windows 3.1 1                           3 
      

  5.   

    hehe……题目不明确,只是要判断操作系统是32位的还是16位不知道行不行?
      

  6.   

    OSVERSIONINFO os;
    os.dwOSVersionInfoSize = sizeof(OSVERSIONINFO);
    GetVersionEx(&os);
    if (os.dwPlatformId == VER_PLATFORM_WIN32_NT)
    {
    //NT /2000/XP
    }
    else if (os.dwPlatformId == VER_PLATFORM_WIN32_WINDOWS)
    {
    //WIN9X
    }
    else
    {
    }