句柄

windows环境中,句柄是用来标识 项目 的。项目包括

1.模块 module

2.任务 task

3.实例 instance

4.文件 file

5.内存块 block of  memory

6.菜单 menu

7.控制 control

8.字体 font

9.资源 resource(包括图标 coin 光标cursor  字符串string等)

10.GDI对象(GDI object)(包括位图bitmap 画刷brush、元文件metafile)、调色板palette、画笔pen、区域region、设备描述表device context

windows是以虚拟内存为基础的操作系统,windows内存管理器在内存中来回移动对象,从而满足各种应用程序的内存需要。对象移动即地址发生变化,所以windows系统为各应用程序腾出一些内存,专门用来登记各应用对象在内存中的地址变化,而这些地址(存储单元的位置)本身是不变的。windows内存管理器在内存中移动对象后,把对象新的地址告知句柄地址来保存。这样只需要记住这个句柄地址就可以间接知道对象在内存中的具体位置。这个地址在对象装载load时由系统分配,当系统unload时又释放给系统。

因此windows程序中并不是用物理地址来标识内存块、文件、任务或动态装入模块的,相反,windows APi给这些项目分配确定的句柄,并将句柄返回给应用程序,然后通过句柄来进行操作。

在windows中会用到大量句柄,eg:HINSTANCE 实例句柄  HBITMAP 位图句柄 HDC设备描述表句柄  HICON图标句柄等

还有一个通用句柄 即HANDLE

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值