前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >句柄的真正理解

句柄的真正理解

作者头像
知识浅谈
发布2020-03-24 16:46:11
1.8K0
发布2020-03-24 16:46:11
举报
文章被收录于专栏:分享学习分享学习

**真理一句话:句柄是引用,而不是指针。只能改变对应对象的内容,但不知道对象在哪。 **

以下内容摘取网上资源,如有违反作者版权,请通知。

句柄是用来标识项目的。(它就象我们的姓名一样,每个人都会有一个,不同的人的姓名不一样,但是,也可能有一个名字和你一样的人。有一说法是指向指针的指针) 项目包括:模块(module)、任务(task)、实例 (instance)、文件(file)、内存块(block of memory)、菜单(menu)、控制(control)、字体(font)、资源(resource),包括图标(icon),光标 (cursor),字符串(string)等、GDI对象(GDI object),包括位图(bitmap),画刷(brush),元文件(metafile),调色板(palette),画笔(pen),区域 (region),以及设备描述表(device context)。 实质: 在windows中,句柄是和对象一一对应的32位无符号整数值。应用程序几乎总是通过调用一个WINDOWS函数来获得一个句柄,之后其他的WINDOWS函数就可以使用该句柄,以引用相应的对象。 形象说法:要想控制某一设备,不去直接控制设备,而是控制设备的操作手柄。 使用句柄的好处: windows需要向程序员提供必要地编程接口,在这些接口中,允许程序员访问、创建和销毁对象。出于封装地考虑,windows并不想向程序员返回指针。 句柄和对象映射: 在windows中,存在两种映射方式 a. 全等映射,也即,句柄本身就是一个指针,映射在这里只是类型转换而已。这种情况有,进程实例句柄或模块句柄,以及资源句柄等等 b. 基于表格的映射。这是对象指针与句柄之间最普通的映射机制。操作系统创建表格,并保存所有要考虑的对象。需要创建新对象时,要先在表格中找到空入口,然后把表示对象的数据添入其中。当对象被删除时,它的数据成员和其在表中的入口被释放。 句柄和指针的区别:句柄就是你的上smth的ID 通过这个id,无论你在那里我都可以找到你, 但是指针就好像你上机的地方, 在这个地方,可以找到你, 但是你的id是不变化的 ,上机地方可以变。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档