句柄实际上是一种指向某种资源的指针,但与指针又有所不同。
“句柄”(handle),handle的本意是把柄,把手的意思。
是你与操作系统打交道的东东。举个通俗的例子,比如你考上了大学,
入学后,学校(操作系统)会给你一个学生证号。注意,这个号码是学
校指定的,你无法自选。有了这个号码(学生证,假设一证多用)就可
以享受学校提供的服务:如你就可以去图书馆借书,去食堂吃饭,去教
室上课等等。但你不能到食堂里买啤酒,因为学校不允许这种服务。而
在计算机中系统提供的服务就是API调用,你有了HANDLE,就可以理直气
壮地向系统提出调用API的服务。而指针的权力就大多了,有了指针你可
以到处去喝酒,打架,学校(操作系统)管不着,所以句柄和指针的区别
在于句柄只能调用系统提供的服务。而句柄虽然是一个能相互区别的号码,
但与我们普通的ID号又有区别,普通的ID号是可以由程序员自己定义的,
而句柄不行,它是对象生成时系统指定的,是为了区别系统中存在的各个
对象,这个句柄不是由程序员符给的。实际应用中,最常用的就是文件句
柄和窗口句柄。例如,窗口句柄的值是一个长整数,每个窗体都用一个句
柄来表示。所以句柄是不会重复的,很多的函数都会用到窗体的句柄。