好多代码老看到句柄和API它们是怎么个工作原理详细给解释一下,有例子最好

解决方案 »

  1.   

    句柄相当于一个对象的指针,有了它就能操纵它对应的一系列数据,不一定真的是对象
    API就是应用编程接口,公用函数
      

  2.   

    句柄就相当于系统给每个应用程序窗口编的号码,就像门牌号一样,通过这个号码可以操作相应的窗口。
    API函数接口,编程中可以很方便的调用不同的API函数,实现不同的功能。
      

  3.   

    句柄可以看似ID,是一串数字来的,都是唯一的,有了它就可以操作它相应的窗口或者数据
    API是接口函数,是封装好的了,我们不用关心函数内它是怎么实现的,只要懂得如何调用及清楚返回的结果是什么即可,像Windows API我们可以直接拿来用这是我的肤浅之见哈!!!
      

  4.   

    句柄不一定是窗口的,很多种东西都有句柄,句柄就是类似代号的东西,由系统分配,你用句柄进行系统调用,系统就会知道你要操作那个东西。API就是应用接口,就是系统提供给你的调用接口。windows api很多都是要用到句柄的,一般都这么用:
    句柄 创建xxx() 函数返回一个句柄
    操作(句柄)
    销毁(句柄) 说起句柄像指针,传说windows至少某些版本就是拿指针当句柄使的。
      

  5.   


    还是去看微软怎么说的http://msdn.microsoft.com/en-us/library/windows/desktop/ms724457(v=vs.85).aspx
      

  6.   

    用一个最简单的例子:
    假设你要实现了一些函数用于操作某个数据结构的,你一般会这么做:1. 先设计这个数据结构:
      PData = ^TData;
      TData = record
        Data1: Integer;
        Data2: Integer;
      end;2. 设计一些操作函数
      function CreateData: PData;
      procedure FreeData(Data: PData);
      procedure ProcData1(Data: PData; data1, data2: Integer);
      procedure ProcData2(Data: PData; data1, data2: Integer);3. 现在你的函数设计好了,但是你觉得数据结构内部知道就好了,外部调用的并不需要知道。
       那么,你将函数重新设计成这样:
      function CreateData: Pointer;
      procedure FreeData(Data: Pointer);
      procedure ProcData1(Data: Pointer; data1, data2: Integer);
      procedure ProcData2(Data: Pointer; data1, data2: Integer);  用户创建了某个结构,但他并不知道,他只要调用函数操作这个结构就好了,把这个概念更一般化一些。
      这个结构指针就是所谓的“句柄”不知这样解释你明白些了没有。