句柄是什么东西?

楼主huang_2(叽叽喳喳)2001-11-23 22:28:05 在 C++ Builder / 基础类 提问

问题点数:10、回复次数:12Top

1 楼gloom(苍狗白云)回复于 2001-11-23 23:23:00 得分 6

是操作系统分配给窗体的一个长整形的特征(唯一标志符)Top

2 楼gloom(苍狗白云)回复于 2001-11-23 23:24:12 得分 0

窗体不仅仅是FORM,也包含BUTTON,MEMO,EDIT等。Top

3 楼VSaber(☆浪人☆)回复于 2001-11-24 00:59:34 得分 4

说来复杂,你把它想成windows系统的指针吧!!!Top

4 楼wangsheng1028(java菜)回复于 2002-02-06 11:40:22 得分 0

还是不是很明白,哪个可以形象的说一下呢?  
  谢谢Top

5 楼sptbo(竹蜻蜓)回复于 2002-02-06 22:34:18 得分 0

就是名字Top

6 楼totodo(土豆仙)回复于 2002-02-14 22:34:00 得分 0

兄弟跟我一样也是初学啊?  
   
  其实句炳识别对象(按钮,窗体等)的一种方法,句柄就是名字。  
   
  就比如一个应用程序。他被执行之后,系统就把它读取到内存总。。那这个程序在内存中(比如2000   下看到任务管理器里的名字)的地址,可能就是句柄了。  
  Top

7 楼logical(阿来)回复于 2002-02-20 12:59:19 得分 0

句柄就是一种标识,一个系统中这是唯一的.就象学校里的学号一样,每个学生一个编号,在一个班里学号是唯一的.但不同的班不同的学校,学号当然可以相同.  
  句柄并不是窗口才有(但窗口是一定有),文件、位图……等等都可以有句柄这一概念(但意义不大相同)。象学校里的学生有编号(学号),社会上的活着的人也有编号(身份证编号),监狱里的人们也有编号(**号)……但这编号的意义可能就不大相同。  
  句柄(编号)的意义是管理方便,从理论上来说,使用名称也是可以的,但实现起来麻烦就多了。如我想打电话给你,我总不能拔“中国**省**市**街**号**人”吧?  
  句柄(编号)就是一个标识(一般是一个整数),意义是方便系统定位于该对象。Top

8 楼huxiaoli(跟大海搏斗)回复于 2002-02-23 14:59:53 得分 0

请看Winnt.h  
  #ifdef   STRICT  
  typedef   void   *HANDLE;  
  #define   DECLARE_HANDLE(name)   struct   name##__   {   int   unused;   };   typedef   struct   name##__   *name  
  #else  
  typedef   PVOID   HANDLE;  
  #define   DECLARE_HANDLE(name)   typedef   HANDLE   name  
  #endif  
  typedef   HANDLE   *PHANDLE;  
   
  现在知道了吧,HANDLE就是PVOID,也就是无类型指针Top

9 楼huxiaoli(跟大海搏斗)回复于 2002-02-23 15:04:13 得分 0

看Winnt.h:  
  #ifdef   STRICT  
  typedef   void   *HANDLE;  
  #define   DECLARE_HANDLE(name)   struct   name##__   {   int   unused;   };   typedef   struct   name##__   *name  
  #else  
   
  typedef   PVOID   HANDLE;  
   
  #define   DECLARE_HANDLE(name)   typedef   HANDLE   name  
  #endif  
  typedef   HANDLE   *PHANDLE;  
   
  HANDLE就是PVOID,也就是无类型指针Top

10 楼huxiaoli(跟大海搏斗)回复于 2002-02-23 15:35:41 得分 0

看Winnt.h:  
  #ifdef   STRICT  
  typedef   void   *HANDLE;  
  #define   DECLARE_HANDLE(name)   struct   name##__   {   int   unused;   };   typedef   struct   name##__   *name  
  #else  
   
  typedef   PVOID   HANDLE;  
   
  #define   DECLARE_HANDLE(name)   typedef   HANDLE   name  
  #endif  
  typedef   HANDLE   *PHANDLE;  
   
  HANDLE就是PVOID,也就是无类型指针Top

11 楼redwh(第一滴泪)回复于 2002-02-23 18:43:30 得分 0

就是当前对象的唯一的身份识别标志符.  
   
  Top

12 楼iec(bcbtovs)回复于 2002-02-24 13:40:29 得分 0

只有获得其句柄,才能访问它的内核资源Top

你可能对以下的问题也比较感兴趣....