什么是句柄?

来源:百度知道 编辑:UC知道 时间:2024/05/13 19:52:02

句柄是整个windows编程的基础。一个句柄是指使用的一个唯一的整数值,即一个四字节长的数值,来标识应用程序中的不同对象和同类对象中的不同的实例,诸如,一个窗口、按钮、图标、滚动条、输出设备、控件或者文件等。句柄是windows用来标志应用程序中建立的或是使用的唯一整数,windows使用了大量的句柄来标志很多对象。应用程序能够通过句柄访问相应的对象的信息,但是句柄不是一个指针,程序不能利用句柄来直接阅读文件中的信息。如果句柄不用在I/O文件中,它是毫无用处的。

1.句柄是找到一块内存的索引,作用:找到内存后通过调用Windows函数来修改数据
2.跟指针的区别是,我们通过指针可以直接修改里面的数据,不需要通过Windows函数来修改
3.微软这样做的原因是:封装重要的数据,不让我们自己直接修改,怕我们修改坏了。要修改通过委托Windows来修改

句柄是一个(通常为32位的)整数,它代表一个对象。Windows中的句柄类似传统C或者MS-DOS程序设计中使用的文件句柄。程序几乎总是通过呼叫Windows函数取得句柄。程序在其它Windows函数中使用这个句柄,以使用它代表的对象。

在 Windows 中,窗口可以有许多种。窗口可以是屏幕上的一块矩形封闭区域,比如您熟悉的应用程序窗口。窗体上的控件(例如列表框或滚动条)也可以是窗口,但并不是所有类型的控件都是窗口。桌面上的图标和桌面本身也是窗口。因为所有这些类型的对象都是窗口,所以 Windows 可以用类似的方式处理它们。Windows 给每个窗口一个唯一的句柄,通过句柄操纵该窗口。许多 API 函数可返回句柄或者接受句柄作参数。

创建窗口时,Windows 给它指派一个句柄,窗口消失后句柄被释放。

typedef struct tagWND
{
LPCTSTR lpszClassName;
WNDPROC lpWndProc;
UINT uStyle;
UINT uExStyle;
LPCTSTR lpszTitle;
REC