一.介绍
1.什么是句柄
句柄windows应用程序用来表示资源的一个符号,几乎所有的资源对于应用程序来说都表示为一个句柄。比如文件,用CreateFile打开一个文件,成功则会得到一个句柄,其实就是一个32位无符号整数。“当一个进程根据名称来创建或者打开一个对象时,他收到一个句柄,然后通过此举并来访问该对象。”(深入解析windows操作系统,P135)。这里HANDLE类型的作用已经很清楚了。C语言fopen函数打开文件时候,会返回一个FILE类型指针,其实这东西就可以认为也是个句柄。
2.HANDLE有什么好处呢?
a.效率:“使用句柄访问对象要比使用名字访问对象快的多,因为对象管理器可以跳过名称查找过程,直接找到目标对象。”(深入解析windows操作系统,P135)。这个问题属于对象管理器范畴,不细说了。
b.封装:句柄是系统资源的一个间接指针,使得用户模式应用程序不用直接和系统数据结构打交道。windows应用程序看来,文件,进程,线程等资源统统都是一个句柄。开发者只需要获得这个句柄,然后将句柄作为参数来做有关调用。
下面这段代码就是很好的例子:
vector<wstring