句柄跟API是什么东西

句柄和API是什么东西
好多代码老看到句柄和API

它们是怎么个工作原理

详细给解释一下,有例子最好
------解决方案--------------------
句柄不一定是窗口的,很多种东西都有句柄,句柄就是类似代号的东西,由系统分配,你用句柄进行系统调用,系统就会知道你要操作那个东西。

API就是应用接口,就是系统提供给你的调用接口。

windows api很多都是要用到句柄的,一般都这么用:
句柄 创建xxx() 函数返回一个句柄
操作(句柄)
销毁(句柄) 

说起句柄像指针,传说windows至少某些版本就是拿指针当句柄使的。
------解决方案--------------------
引用:
还是看不明白


还是去看微软怎么说的

http://msdn.microsoft.com/en-us/library/windows/desktop/ms724457(v=vs.85).aspx
------解决方案--------------------
用一个最简单的例子:
假设你要实现了一些函数用于操作某个数据结构的,你一般会这么做:

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);

  用户创建了某个结构,但他并不知道,他只要调用函数操作这个结构就好了,把这个概念更一般化一些。
  这个结构指针就是所谓的“句柄”

不知这样解释你明白些了没有。