该怎样理解句柄?句柄到底是什么?是管理指针的指针吗?请指点

解决方案 »

  1.   

    WINDOWS程序中并不是用物理地址来标识一个内存块,文件,任务或动态装入模块的,相反的,WINDOWS API给这些项目分配确定的句柄,并将句柄返回给应用程序,然后通过句柄来进行操作。
    句柄在实现上并不是指针,更像是用来唯一标识的代号
      

  2.   

    参考FAQ:
      http://community.csdn.net/Expert/FAQ/FAQ_Index.asp?id=194859
      

  3.   

    句柄是一个UINT类型,用来标示核心对象。
      

  4.   

    句柄本身就是UINT类型,用以标识系统核心对象。
      

  5.   

    转来的,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也有这样的功能,而且还可以帮你代理做任何事情.就好比网上购物一样,但你进行的是虚拟的操作,你看到的也只是产品的图片.
      

  6.   

    在windows里,根据它就可以找到相关信息,至于怎么找、找到的是什么信息、怎么利用这些信息,基本上是微软想怎样就怎样,所以很没意思,个人意见。呵呵