句柄和API是什么东西解决思路

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

它们是怎么个工作原理

详细给解释一下,有例子最好

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

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

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

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

------解决方案--------------------
用一个最简单的例子:
假设你要实现了一些函数用于操作某个数据结构的,你一般会这么做:

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

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

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