MFC中“句柄”是啥意思

jue222 2008-03-29 08:37:51
在MFC编程中,经常碰到“句柄”一词。请通俗易懂的解释一下。
谢谢啦!
...全文
558 25 打赏 收藏 转发到动态 举报
写回复
用AI写文章
25 条回复
切换为时间正序
请发表友善的回复…
发表回复
xwxzkekekeke 2012-06-05
  • 打赏
  • 举报
回复
是不是可以理解为函数指针?怎么控制窗口的?
r_swordsman 2008-04-01
  • 打赏
  • 举报
回复
windows 中的内核对象都被封装到一个“箱子”中,
要操作这些“箱子”,你就需要钥匙,即句柄。

要获得钥匙,比如操作某个进程“箱子”的钥匙——句柄,
那么使用“打开进程”的函数来获得钥匙——这个函数返回一个句柄。
LWYY52243548 2008-04-01
  • 打赏
  • 举报
回复
最简单的理解就是:句柄是资源的标识符,你也可以把他看作指针.
perfectly27 2008-04-01
  • 打赏
  • 举报
回复
很好很好,继续
helodd 2008-03-31
  • 打赏
  • 举报
回复
对象指针。
huangxiaofei 2008-03-31
  • 打赏
  • 举报
回复
In programming, a handle is a token, typically a pointer, that enables the program to access a resource, such as a library function.

在编程领域内,句柄就是一个“记号”,一种特殊的类似指针的东西,程序员用它可以让自己的程序获取一个资源(比如窗口,设备等),例如一个库的某个功能函数。

摘自http://www.webopedia.com/

句柄这个东西貌似指针,但实际并不是指针。由于windows操作系统的结构和工作原理,它的资源和设备的地址都是windows核心态的,这就意味着作为工作在用户态的用户程序是无法访问资源或设备的实际地址(也就是指针地址)的。所以windows机制引入了句柄,句柄是一个32位的符号,程序向操作系统提交这个符号后,操作系统通过自己的翻译程序,把句柄对应的资源的真正地址再返回给程序,让程序能够访问资源所提供的功能和服务。
DOS时代的内存管理是完全可见的,程序可以直接访问操作系统任何部分的任何资源,显示器缓存,中断向量表.......,但是windows上下两层的内存管理机制让程序必须要多经过一道手续才能访问。
hurry281 2008-03-31
  • 打赏
  • 举报
回复
哦,原来是这样啊
xiaoQ008 2008-03-31
  • 打赏
  • 举报
回复
句柄这东西你能用就是
这个东西不需要了解太多吧
反正他是一个32位值
adrian_yang84 2008-03-31
  • 打赏
  • 举报
回复
拥有学号后不能控制对应的学生: 确实如此.但是有了学校一系列规章制度后,学号就与学生联系起来了 就好象句柄能起作用也是因为有操作系统这个"幕后之手"在指挥,是它把相应的句柄与资源关联起来, 操作系统如撒手不管,句柄就成摆设了!而指针不同,指针是地址,对象就老老实实的在那,你只要指到它, 就一定能控制它 以上是个人理解.呵呵
DSVCNET 2008-03-31
  • 打赏
  • 举报
回复
但是拥有学号后不能控制对应的学生啊
boxxer 2008-03-31
  • 打赏
  • 举报
回复
我觉得那个学号的比喻不错。
gaoxiaowei 2008-03-31
  • 打赏
  • 举报
回复
句柄为窗口、事件、内核对象等的标识或ID。
Y___Y 2008-03-31
  • 打赏
  • 举报
回复
类似身份证的功能
babyofbaby 2008-03-31
  • 打赏
  • 举报
回复
相当于指针
要是一个苹果是个窗口,那窗口句柄就是苹果把
feyyee 2008-03-30
  • 打赏
  • 举报
回复
恩,知识更明晰了。
suterfo 2008-03-30
  • 打赏
  • 举报
回复
其实就是标识,就如同学生的学号那样,每一个都不一样,你就001号来教务处,那这小子就得来.而这001号就是标识,也就是句柄,这就是我的理解了.
ColonelFan 2008-03-29
  • 打赏
  • 举报
回复
Quoted From <<Programming Windows>>
Handle (P50)
Handles are used quite frequently in Windows.
A handle is simply a number (usually 32 bits in size) that refers to an object. The handles in Windows are similar to file handles used in conventional C or MS-DOS programming. A program almost always obtains a handle by calling a Windows function. The program uses the handle in other Windows functions to refer to the object. The actual value of the handle is unimportant to your program, but the Windows module that gives your program the handle knows how to use it to reference the object.

句柄:
句柄在Windows中经常被使用。
句柄实际上就是一个用来引用一个对象的数字(大小通常是32位)。Windows中的句柄与传统的C或是MS—DOS环境下编程时的文件句柄相似。一个程序几乎总是通过呼叫Windows的函数来获得句柄。程序通过利用其他Windows函数中的句柄来引用对象。对于你的程序来说,句柄本身的值并不重要,但是Windows的模块是通过给定一个程序相应的句柄并且利用它来应用相应的对象。
greatws 2008-03-29
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 cnzdgs 的回复:]
句柄就是“操作杆”。
[/Quote]

够形象,不过"句柄"这个翻译确实不怎么样,还是英文handle好理解
con_con 2008-03-29
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 cnzdgs 的回复:]
句柄就是“操作杆”。
[/Quote]
哈哈
很形象
cnzdgs 2008-03-29
  • 打赏
  • 举报
回复
句柄就是“操作杆”。
加载更多回复(5)

16,471

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧