来源:远方网络 | 2005-5-17 18:34:17 | (有10463人读过)
句柄实际上是一种指向某种资源的指针,但与指针又有所不同。 “句柄”(handle),handle的本意是把柄,把手的意思。是你与操作系统打交道的东东。举个通俗的例子,比如你考上了大学,入学后,学校(操作系统)会给你一个学生证号。注意,这个号码是学校指定的,你无法自选。有了这个号码(学生证,假设一证多用)就可以享受学校提供的服务:如你就可以去图书馆借书,去食堂吃饭,去教室上课等等。但你不能到食堂里买啤酒,因为学校不允许这种服务。而在计算机中系统提供的服务就是API调用,你有了HANDLE,就可以理直气壮地向系统提出调用API的服务。而指针的权力就大多了,有了指针你可以到处去喝酒,打架,学校(操作系统)管不着,所以句柄和指针的区别在于句柄只能调用系统提供的服务。而句柄虽然是一个能相互区别的号码,但与我们普通的ID号又有区别,普通的ID号是可以由程序员自己定义的,而句柄不行,它是对象生成时系统指定的,是为了区别系统中存在的各个对象,这个句柄不是由程序员符给的。实际应用中,最常用的就是文件句柄和窗口句柄。例如,窗口句柄的值是一个长整数,每个窗体都用一个句柄来表示。所以句柄是不会重复的,很多的函数都会用到窗体的句柄。 ===================================================================
-- 作者:eym -- 发布时间:2004-1-27 11:21:18
-- 扫帚用过吗? 用扫帚扫地的时候要握住扫帚柄吧,,, 程序也一样,, 你象对程序进行必要的操作就要掌握住程序\'句柄\' 这是我自己的解释,,书上都有的,你可以看看权威们是怎么说的 -------------------------------------------------------------------------------- -- 作者:apple -- 发布时间:2004-1-27 11:35:19
-- 好比夏天天气很热,你用扇子扇风的时候就要握住扇丙就可以控制整个扇子,同一个道理,你只要掌握好系统的句丙就可以掌握住程序 -------------------------------------------------------------------------------- -- 作者:游侠无极限 -- 发布时间:2004-1-27 15:37:08
-- 我自己的理解是:句柄相当于一个物件的名字(ID),具有唯一性,也有点像IP -------------------------------------------------------------------------------- -- 作者:NICO -- 发布时间:2004-1-27 20:27:26
-- 句柄 一般和资源 对应 可以把它理解成 指针 只不过指针是指向 某个类 或结构 等这些东西 -------------------------------------------------------------------------------- -- 作者:dongdong007 -- 发布时间:2004-1-27 22:24:51
-- 大家能举个例子说明一下么? -------------------------------------------------------------------------------- -- 作者:曾半仙 -- 发布时间:2004-1-29 0:36:38
-- 句柄是windows对资源(窗口/控件/画笔)的编号. 本身不具备意义,一般只用来参数传递, 最终还是由Windows自行使用. 例如你使用CreateSolidBrush创建一个画刷,windows在其内部开辟资源(内存/链表/时间片等东西),且给这个画刷一个句柄,你利用他画图的时候,是将其具备作为参数传给windows,windows再根据你的参数自行实现画刷的功能 -------------------------------------------------------------------------------- -- 作者:wowocock -- 发布时间:2004-1-29 14:34:39
-- 句柄相当于指针,但由于在用户层是不能操纵系统内核的,所以通过句柄这个间接指针来引用对象,其实就是内核句柄表索引,所以只在当前的进程有效,如果切换了进程,那么就没有意义了,因为已经不是原来的那个表格了,在RING3一切都显得那么的限制,无奈。。。。。。 -------------------------------------------------------------------------------- -- 作者:NICO -- 发布时间:2004-2-12 23:37:17
-- 让句丙可以继承 生成子进程 句丙在子进程照样有效 无奈什么 -------------------------------------------------------------------------------- -- 作者:masm8086 -- 发布时间:2004-2-13 12:27:45
-- 什么叫'句柄'? 用windows中的资源时都要先取得它的句柄 句柄就是资源的 指针吧,我是菜鸟,瞎说! -------------------------------------------------------------------------------- -- 作者:leeon -- 发布时间:2004-2-13 12:42:32
-- 请查阅Msdn以及基础书籍。查阅置顶的FAQ列表和有意义的连接。
这里不讨论基础问题,谢谢。
==============================================
|