什么是句柄?
该怎样理解句柄?句柄到底是什么?是管理指针的指针吗?请指点 问题点数:0、回复次数:9Top
1 楼zzm7000()回复于 2005-06-01 13:42:41 得分 0
WINDOWS程序中并不是用物理地址来标识一个内存块,文件,任务或动态装入模块的,相反的,WINDOWS API给这些项目分配确定的句柄,并将句柄返回给应用程序,然后通过句柄来进行操作。
句柄在实现上并不是指针,更像是用来唯一标识的代号Top
2 楼kurt8276(扑火蝶)回复于 2005-06-01 13:58:46 得分 0
是一个数而已,区分不同的句柄?Top
3 楼vc_gis(路人A)回复于 2005-06-01 14:02:00 得分 0
参考FAQ:
http://community.csdn.net/Expert/FAQ/FAQ_Index.asp?id=194859Top
4 楼jobine(愚人渡)回复于 2005-06-01 14:02:06 得分 0
句柄是一个UINT类型,用来标示核心对象。Top
5 楼jobine(愚人渡)回复于 2005-06-01 14:04:26 得分 0
句柄本身就是UINT类型,用以标识系统核心对象。Top
6 楼weirdy(远古传说)回复于 2005-06-01 14:53:50 得分 0
用以标识系统核心对象,只有系统函数知道该值的意义,应用程序不知道,不同的句柄含义也是不同的(及代表的系统数据结构是不同的)Top
7 楼cxliang(天山传奇)回复于 2005-06-01 15:42:25 得分 0
项目标号标号,或者可以理解成索引.Top
8 楼dingpiao(.......)回复于 2005-06-01 17:06:54 得分 0
转来的,
MFC相当于一些第三产业,比如餐馆.比如企业ISO9000认证咨询公司.比如营业执照代办机构.
所有的原因是因为这些东西都很复杂,所以我们引进了MFC来帮我们的忙.
其实跟认证咨询公司帮我们准备报表,然后帮我们联系认证机构一样.MFC就是通过API和WINDOWS这个上帝进行交流.我们自己可能记不住怎么和上帝聊天的规范,但MFC知道那些流程.如果你自己会讲你在MFC帮你说的时候你也可以自己插嘴说两句,这样直接一点.
先讲讲跟WINDOWS上帝说话的时候的要素. 最关键的是句柄(内存地址),因为在WINDOWS的概念里只有内存空间地址. 比如你求WINDOWS帮你在你的程序的窗口上写一个字(记住,其实是WINDOWS帮你写的,别以为写上几个代码就会在屏幕上写字),那你得告诉WINDOWS 你的窗口内存的地址,然后告诉它在什么坐标上. 这个时候WINDOWS 就找到那个内存地址,然后 通过坐标计算出相对空间位置加上内存地址, 这时候就在那里写上字. 然后其他的部门(显示驱动程序)会把字写到屏幕上
上面的操作,如果你自己跟WINDOWS说,那得做两件事,第一件是获得句柄,第二件申请.
如果叫MFC做,他在VIEW里面给你一个CDC指针,你只要叫CDC的成员函数帮你TEXTOUT就可以了,句柄它会帮你搞定.
程序是一个进程,你的程序分配到的内存被包成一个整体,你在程序里得到的指针是从0开始的相对指针,句柄是绝对指针.句柄是在你向WINDOWS对话的时候用的.平时自己用的时候只要用相对指针就可以了.MFC就是帮你隐藏绝对指针,让你觉得你的世界是从0开始的完美的世界.可偏偏有些时候还是被我们发现,老鸟觉得很自然,新手就困惑了,为什么要用句柄.如果你想让WINDOWS给你做事他用的是句柄,就好比美圆是国际通用的.如果你在自己的程序国家里做什么用用人民币,如果你想用人民币在国外买东西,那就得找银行兑换.MFC也有这样的功能,而且还可以帮你代理做任何事情.就好比网上购物一样,但你进行的是虚拟的操作,你看到的也只是产品的图片.
Top
9 楼jronald(深白色)回复于 2005-06-01 17:17:55 得分 0
在windows里,根据它就可以找到相关信息,至于怎么找、找到的是什么信息、怎么利用这些信息,基本上是微软想怎样就怎样,所以很没意思,个人意见。呵呵Top




