鱼C论坛

 找回密码
 立即注册
查看: 3737|回复: 5

字符串在内存中的线性地址总是大于10000H是什么意思

[复制链接]
发表于 2016-9-17 11:30:31 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 风逝无痕 于 2016-9-17 19:10 编辑

我不是不懂10000H的意思,只是不懂“线性地址总是大于10000H”这句话的意思,大家别见笑本人小学没毕业没办法才问
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2016-9-17 11:42:13 | 显示全部楼层
10000H是 十六进制表示的  
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-9-17 11:50:48 From FishC Mobile | 显示全部楼层
我知道10000H是 十六进制表示的 ,我是问“线性地址总是大于10000H”这句话的意思
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-9-17 11:54:25 | 显示全部楼层
建议你把完整的话给放上来,我们只看一部分也不知道你想问啥
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-9-17 18:39:05 | 显示全部楼层
my_angel 发表于 2016-9-17 11:54
建议你把完整的话给放上来,我们只看一部分也不知道你想问啥

完整的是这样的““菜单ID MENU [DISCARDABLE]”语句用来指定菜单的ID值和内存属性,菜单ID可以是16位的整数,范围是1~65 535,但菜单ID也可以用字符串表示,如下面的定义:
MainMenu  menu
表示菜单的ID是字符串型的”MainMenu”,但这样定义的话,在程序中引用的时候就要用字符串指针代替16进制的菜单ID值,显得相当不便,所以在实际应用中通常使用16进制数值当做菜单ID。数值型ID的范围限制在1~65 535之间的原因是字符串在内存中的线性地址总是大于10000h,API函数检测参数时发现小于10000h时就可以把它认为是数值型的,大于10000h时就当做字符串指针处理。

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-9-17 20:16:49 | 显示全部楼层

回帖奖励 +5 鱼币

风逝无痕 发表于 2016-9-17 18:39
完整的是这样的““菜单ID MENU [DISCARDABLE]”语句用来指定菜单的ID值和内存属性,菜单ID可以是16位的 ...

其实这个不用把他想成很难的问题。
这个是API定义的。
给你看看原文吧。
在菜单的API文档定义中,可以使用菜单ID的参数说明如下:
Long pointer to a null-terminated string that contains the name of the menu resource. Alternatively, this parameter can consist of the resource identifier in the low-order word and zero in the high-order word. To create this value, use the MAKEINTRESOURCE macro.
意思是说,这是一个32位参数,如果传入资源ID的话,就是一个16位的数(高16位置0)。
但是,也可以传入一个32位指针,指向一个字符串。这时候为了区分ID和指针,指针项的高16位就必须大于0,整个32位数来看,就是10000h。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-19 14:31

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表