对句柄的理解

      以前学习API,只感觉到很难,看了几集视频,却还是不很理解.后来终于看完了这一部分视频,等到小工程里需要用到时,却还是不会用...最后在网上查了查,看了看别人怎么用的,才执行成功了.

 

      应用程序通过调用一个windows函数来获得一个句柄,这个句柄对应着众多项目表中的一项.然后,应用程序通过API函数来处理句柄.句柄是一个标识符,也就是用来标识对象或者项目的.感觉,句柄也是指向对象内存地址的指针.

      为什么不能直接调用windows内存,而需要调用句柄呢?由于windows系统要使内存高效利用吧,每一次使用应用程序,系统给它分配的内存不是一成不变的.有进程时,系统就给它分配一块内存地址,进程结束时,系统分配的内存就被释放了,从而达到高效利用.由于内存的变动,就不可能去直接调用某一块内存地址.于是操作系统为应用程序腾出一些内存单元,用来专门登记各个应用程序的对象在内存中地址的变化.当对象在内存中的位置变化时,就把对象的新地址告诉对应的句柄,使句柄及时更新.而句柄所在的内存单元是不变的.这样通过句柄就可以直接调用到它所对应的对象.
      以上为个人理解,错误之处,还请大家指出.
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值