句柄(handle)就是某个对象的标识,有了它你就可以对handle所代表的对象(比如窗体,按钮等)进行操作了!

解决方案 »

  1.   

    一个内存对象,但不想让你知道其内部结构,就定义一个handle来指示它的位置,通常是指针或者表索引。例:
    static struct _file_struct file_table[20];HANDLE open(char *path)
    {
       int handle;
       for ( handle = 0; handle < 20; handle++ )
       {
          if ( file_table[handle] == - 1)
               break;
       }
       if ( handle >= 20 )
           return (HANDLE)-1;     // 系统资源耗尽   // ... 打开文件内部操作   return (HANDLE)handle;
    }
      

  2.   

      句柄类似与指针,就是对象的标识,但句柄与一般的指针有着一定的区别,句柄不仅仅我们用户需要用(操作核心对象和GUI对象),而且OS也需要用,OS本身就得利用这些句柄来完成一定的功能.所以句柄不是编程语言的产物而是OS的产物,句柄充当是OS和用户之间桥梁的角色.
      

  3.   

    windows系统对每一个进程有一个句柄表,这个表登记者分配给这个进程的内核资源(比如用CreateFile打开的文件)的一个内存快的指针,