句柄(handle)的含义

windows编程中的句柄(handle)是什么意思
Re: windows编程中的句柄(handle)是什么意思(新手) 
发信站: BBS 水木清华站 (Wed Mar 21 21:08:13 2001)

句柄是一种指向指针的指针。我们知 道,所谓指针是一种内存地址。应用程序启动后
,组成这
个程序的各对象是住留在内存的。如果简单地理解,似乎我们只要获知这个内存的首地
址,
那么就可以随时用这个地址 访问对象。但是,如果您真的这样认为,那么您就大错特错
了。
我们知道,Windows是一 个以虚拟内存为基础的操作系统。在这种系统环境下,Window
s内存
管理器经常在内存中来回移动对象,依此来满足各种应用程序的内存需要。对象被移动
意味着
它的地址变化 了。如果地址总是如此变化,我们该到哪里去找该对象呢?
为了解决这个问题,Windows操作系统为各应用程序腾出一些内存储地址,
用来专门 登记各应用对象在内存中的地址变化,而这个地址(存储单元的位置)本身是不
变的。
Windows内存管理器在移动对象在内存中的位置后,把对象新的地址告知这个句柄地址来
保存。
这样我们只需记住这个句柄地址就可以间接地知道对象具体在内存中的哪个位置。
这个地址是在对象装载(Load)时由系统分配给的,当系统卸载时(Unload)又释放给系统
 。
句柄地址(稳定)→记载着对象在内存中的地址────→对象在内存中的地址(不稳定)
 →实际对象
但是,必须注意的是程序每次从新启动,系统不能保证分配给这个程序的句柄还是原来
的那个句柄,
而且绝大多数情况的确不一样的。假如我们把进入电影院看电影看成 是一个应用程序的
启动运行,
那么系统给应用程序分配的句柄总是不一样,这和每次电 影院售给我们的门票总是不同
的一个座位
是一样的道理。  
 
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值