什么是句柄???

to2008 2001-05-11 10:08:00
也许我看书太不认真,我找不到C++对于句柄的定义。
请告诉我“句柄”的精确定义,并告之出自哪本书,第几页。
多谢!
...全文
351 6 打赏 收藏 举报
写回复
6 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
holyfire 2001-05-11
就是一个标识号,如何实现不需要关心,接口会根据句柄来区分不同的同类对象(广义)就是了。
  • 打赏
  • 举报
回复
jxuer 2001-05-11
think in c++(P52)是这样说的,句柄是一个指向一个结构的指针,
而这个结构的定义隐藏在实现文件中
  • 打赏
  • 举报
回复
hello_wyq 2001-05-11
句柄就是这样的---》!
  • 打赏
  • 举报
回复
BenHubert 2001-05-11
我的理解,
说白了就是一个整型数,这个整型数和某一个对象相对应,
就好像学生的学号 和 学生相对应一样,
  • 打赏
  • 举报
回复
qqchen79 2001-05-11
我以前发的关于Windows中Handle的文章,差不多啦!
_______________________________________________________________________________
从用户(操作系统调用的用户,程序员)的角度来看,最好的理解是对进程中打开/使用的系统对象(如:文件)的索引,也就是说,
通过Handle,可以找到打开/使用的系统对象的一些状态信息(如:文件的访问权限等)。对程序员来说,知道handle域进程打开对象
的一一对应关系就足够了。
当然,这只是一种理解,任何将Handle做为指针或索引的程序访问方法都是不可取的(事实上,由于handle指向/索引的内存存
在于系统空间内,这种访问方法也没有任何可行性)。Handle本身隐藏了系统的内部实现,也就是说,M$可以选择使用指针或索引来实现
Windows系统的handle,而且这种改变将不会对应用程序造成任何影响。可以想象以下C语言中的文件使用:我们通常定义了一个FILE结构
的指针,然后使用一组函数操作它(fread/fopen/fwrite),但我们极少(或者说不建议)直接访问FILE结构的成员,这样,即使C语言
的实现中改变了FILE结构,也不会影响到我们的程序,Handle也是同样道理。
事实上,MS也确实在不同的Window中使用了不同的Handle类型,甚至不同的对象索引表的数据结构。WindowsNT4.0中,打开对象连续存
放在一张表中(结构数组),Handle是进程打开对象在这张表中相对表首的偏移量(即非指针叶非索引);而在Windows2K中,对象表采
用了三重索引结构,Handle则更接近于对象的索引(这种转化要一些简单的计算)。
Handle和对象表是一个进程的私有财产(包括所谓进程Handle),当子进程创建时,系统会把设有继承属性的Handle复制道子进程的对
象表中。所以,在进程之间简单的传递Handle的值是完全没有意义的。而进程号则是系统为一个进程指定的唯一识别号,不要搞混了。
另外,“Windows”的内存可以东则完全是陈年旧事,在Windows95/98/NT中,每个进程有独立的进程空间,进程之间不会出现任何地址冲突,
还有移动内存的必要吗?至少从进程对内存的实用上来说,可以认为内存是静态的。
  • 打赏
  • 举报
回复
Cowboy22 2001-05-11
搜一下"句柄"你会得到一箩筐,其中不乏精彩比喻
  • 打赏
  • 举报
回复
相关推荐
发帖
C语言

6.6w+

社区成员

C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
帖子事件
创建了帖子
2001-05-11 10:08
社区公告
暂无公告