请问关于 #if (WINVER >= 0x0500)

zhongyj2004 2004-09-27 05:06:04
#if (WINVER >= 0x0500) || (_WIN32_WINNT >= 0x0400)
#define SM_MOUSEWHEELPRESENT 75
请问其中的#if (WINVER >= 0x0500) || (_WIN32_WINNT >= 0x0400)是什么意思呢?
谢谢!!
我在看windows程序设计这本书上有SM_MOUSEWHEELPRESENT在VC6.0中不能没有定义。而在winuser.h中有上面定义。
...全文
447 14 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
linfeng1216 2004-12-24
  • 打赏
  • 举报
回复
up
linfeng1216 2004-12-23
  • 打赏
  • 举报
回复
呵呵!虽然结贴了,我还是要问一下。
按楼上的说法,在头文件中把WINVER定义成了 0x500 ,那编译后的可执行程序放在低版本的操作系统上运行会有问题吗?
李_军 2004-09-28
  • 打赏
  • 举报
回复
你把
#ifdef WINVER
#undef WINVER
#endif

#define WINVER 0x500
放在你要调用SM_MOUSEWHEELPRESENT的文件中就好了
zhongyj2004 2004-09-28
  • 打赏
  • 举报
回复
哦,我是在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
#endif

SM_MIDEASTENABLED没有问题,而后者有问题。

roger_ding 2004-09-28
  • 打赏
  • 举报
回复
WINVER 表示它包含代码所支持的最低操作系统,
例如WINVER >= 0x400
即最低要是Win98

虽然你的是WinXP,但是要定义了才行,把下面的代码加到 stdafx.h 中

#ifdef WINVER
#undef WINVER
#endif

#define WINVER 0x500
Mega1212 2004-09-28
  • 打赏
  • 举报
回复
mark
zhongyj2004 2004-09-28
  • 打赏
  • 举报
回复
我的系统是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应该满足条件呀,为什么会没有定义呢。
DentistryDoctor 2004-09-27
  • 打赏
  • 举报
回复
表明对操作系统的最低版本要求。
DentistryDoctor 2004-09-27
  • 打赏
  • 举报
回复
98/NT4:0x0400
me:0x490
2000:0x500
xp:0x510
nineclock 2004-09-27
  • 打赏
  • 举报
回复
HOHO
Kudeet 2004-09-27
  • 打赏
  • 举报
回复
sutra 只回答经典问题 只提供经典答案
---的答案可以了吧!就是表示版本信息的。

sutra 2004-09-27
  • 打赏
  • 举报
回复
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
snaill 2004-09-27
  • 打赏
  • 举报
回复
判断当前window的版本,因为很多结构在不同的版本下成员不一样

如果你的程序打算在底版本window下运行,就采用小的数字

0x0500好像是指xp
zxl_lim 2004-09-27
  • 打赏
  • 举报
回复
#if (WINVER >= 0x0500) || (_WIN32_WINNT >= 0x0400)
如果windows版本>=5.0(就是2000)或>=4.0(NT)
WINVER宏在文件windows.h中定义了

16,547

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • AIGC Browser
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧