什么是句柄;什么是句柄?指针和句柄的区别

在计算计运用操作中什么句柄:句柄,是整个windows编程的基础,一个句柄是指使用的一个唯一的整数值,是指一个四字节长的数值,用于标志应用程序中的不同对象和同类对像中的不同的实例。比如,一个窗口,按钮,图标,滚动条,控件或者文件等。应用程序就能够通过句柄访问相应的对象的信息。实例句柄用来标识一个程序的一个具体进程,他的值实际上是这个实例被加载到进程空间的地址。句柄不是一个指针,程不能利句柄来直接阅读文件中的信息。句柄是windows用来标志应用程序中建立的或是使用的唯一整数,windows使用了大量的句柄来标志很多对象。在windows环境下,不但可以运行多个应用程序,还可以运行多个应用程序的多份拷贝,每个拷贝叫做一个实例,并且有不同的实例句炳。一个实例句柄是windows可以单独运行的副本,是唯一可以标志此实例的整数。它的区别是:HWND表示的是窗口的句柄,而HNSTANCE表示的是程序的当前实例的句柄。

什么是句柄;什么是句柄?指针和句柄的区别

Python中什么是句柄?

你应该是在学window编程的时候遇到的吧。每一个句柄,对应着一个windows内核对象,你可以把这个句柄看成windows内核的对象的索引,我一说内核对象你可能又不明白了,那咱们具体点,内核对象可以是一个窗口或者一个文件。

什么是句柄;什么是句柄?指针和句柄的区别

当我们操作windows的内核对象的时候,不能直接直接使用指针,必须要使用句柄来操作内核对象。你可能要问了,为啥? 因为句柄指向的结构控制着内核对象的生命周期和地址。 比如,句柄指向的结构里面有内核对象的引用计数, 我们都遇到过 “文件被占用不能删除的” 的提示,这个时候即使句柄指向结构的里面的引用计数起了作用。

其实句柄的作用我的理解就是定义了windows内核管理的基本数据结构。 比如内核对象的物理地址,只有windows内核才有权限访问, 既然原则上是不能暴露出来的,封装起来就是唯一的选择了。

另外,其实这些概念,如果之前没有学过操作系统的相关知识的话,在你的大脑中是非常难以理解的。 因此,建议多看看《深入理解计算机系统》这本书,或者《深入理解windows内核》。把这两本书看明白了, 这些问题就不是问题了。