HANDLE:句柄,是Windows用来表示对象的(不是C++的对象),HWND是其中一种,HWND是HANDLE,但HANDLE不只是HWND,更具体的查MSDN吧。
HANDLE(句柄)是windows操作系统中的一个概念。在window程序中,有各种各样的资源(窗口、图标、光标等),系统在创建这些资源时会为它们分配内存,并返回标示这些资源的标示号,即句柄。句柄指的是一个核心对象在某一个进程中的唯一索引,而不是指针。由于地址空间的限制,句柄所标识的内容对进程是不可见的,只能由操作系统通过进程句柄列表来进行维护。句柄列表: 每个进程都要创建一个句柄列表,这些句柄指向各种系统资源,比如信号量,线程,和文件等,进程中的所有线程都可以访问这些资源 。
其实我们编程时输出一下句柄的值就可以发现这些值往往非常小(<100)。由此就可以看出句柄的性质了。
无效的返回值为: INVALID_HANDLE_VALUE
编程时可作调试用:
例如 void main()
{ char ch[20]="Test.dsw";
HANDLE handle;
LPWIN32_FIND_DATA fd;
handle = FindFirstFile(ch, fd);
if (handle != INVALID_HANDLE_VALUE)
cout<<"ok"<<endl;
else
cout<<"no"<<endl;
}