#if (WINVER >= 0x0500) || (_WIN32_WINNT >= 0x0400)
#define SM_MOUSEWHEELPRESENT    75
请问其中的#if (WINVER >= 0x0500) || (_WIN32_WINNT >= 0x0400)是什么意思呢?
谢谢!!
我在看windows程序设计这本书上有SM_MOUSEWHEELPRESENT在VC6.0中不能没有定义。而在winuser.h中有上面定义。

解决方案 »

  1.   

    #if (WINVER >= 0x0500) || (_WIN32_WINNT >= 0x0400)
    如果windows版本>=5.0(就是2000)或>=4.0(NT)
    WINVER宏在文件windows.h中定义了
      

  2.   

    判断当前window的版本,因为很多结构在不同的版本下成员不一样如果你的程序打算在底版本window下运行,就采用小的数字0x0500好像是指xp
      

  3.   

    Windows 95 and Windows NT 4.0 WINVER=0x0400  
    Windows 98 and Windows NT 4.0 _WIN32_WINDOWS=0x0410 and WINVER=0x0400 
    Windows NT 4.0 _WIN32_WINNT=0x0400 and WINVER=0x0400 
    Windows 98 and Windows 2000 WINVER=0x0500 
    Windows 2000 _WIN32_WINNT=0x0500 and WINVER=0x0500 
    Internet Explorer 3.0 _WIN32_IE=0x0300 
    Internet Explorer 4.0 _WIN32_IE=0x0400 
    Internet Explorer 5.0 _WIN32_IE=0x0500 
      

  4.   

    sutra 只回答经典问题 只提供经典答案
    ---的答案可以了吧!就是表示版本信息的。 
      

  5.   

    98/NT4:0x0400
    me:0x490
    2000:0x500
    xp:0x510
      

  6.   

    我的系统是XP,用VC6.0编译时
    SM_MOUSEWHEELPRESENT 没有定义。
    出现如下编译错误:
    f:\mysdk\1\1.h(297) : error C2065: 'SM_MOUSEWHEELPRESENT' : undeclared identifier而在winuser.h中有以下#if (WINVER >= 0x0500) || (_WIN32_WINNT >= 0x0400)
    #define SM_MOUSEWHEELPRESENT    75
    #endif我的系统是XP应该满足条件呀,为什么会没有定义呢。
      

  7.   

    WINVER 表示它包含代码所支持的最低操作系统,
    例如WINVER >= 0x400
    即最低要是Win98虽然你的是WinXP,但是要定义了才行,把下面的代码加到 stdafx.h 中#ifdef WINVER
    #undef WINVER
    #endif#define WINVER 0x500
      

  8.   

    哦,我是在sdk中。头文件是windows.h
    我是在看那本经典的《windows程序设计》时的程序。
    其中有
        SM_MIDEASTENABLED              
        SM_MOUSEWHEELPRESENT
    在头文件中有
    #if(WINVER >= 0x0400)
    #define SM_CXMENUCHECK          71   /* Use instead of GetMenuCheckMarkDimensions()! */
    #define SM_CYMENUCHECK          72
    #define SM_SLOWMACHINE          73
    #define SM_MIDEASTENABLED       74
    #endif /* WINVER >= 0x0400 */
    #if (WINVER >= 0x0500) || (_WIN32_WINNT >= 0x0400)
    #define SM_MOUSEWHEELPRESENT    75
    #endifSM_MIDEASTENABLED没有问题,而后者有问题。
      

  9.   

    你把
    #ifdef WINVER
    #undef WINVER
    #endif#define WINVER 0x500
    放在你要调用SM_MOUSEWHEELPRESENT的文件中就好了
      

  10.   

    呵呵!虽然结贴了,我还是要问一下。
    按楼上的说法,在头文件中把WINVER定义成了 0x500 ,那编译后的可执行程序放在低版本的操作系统上运行会有问题吗?