句柄

原创 2015年07月08日 14:51:25

1、句柄概念

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

       WINDOWS程序中并不是用物理地址来标识一个内存块,文件,任务或动态装入模块的。相反,WINDOWS API给这些项目分配确定的句柄,并将句柄返回给应用程序,然后通过句柄来进行操作。

       句柄是一个标识符,是拿来标识对象或者项目的。应用程序几乎总是通过调用一个WINDOWS函数来获得一个句柄,之后其他的WINDOWS函数就可以使用该句柄,以引用相应的对象。

2、句柄作用

  如果想更透彻一点地认识句柄,我可以告诉大家,句柄是一种指向指针的指针。我们知道,所谓指针是一种内存地址。应用程序启动后,组成这个程序的各对象是驻留在内存中的。简单地理解,似乎我们只要获知这个内存的首地址,就可以随时用这个地址访问对象了。如果您真的这样认为,那您可就大错特错了。我们知道,Windows是一个以虚拟内存为基础的操作系统。在这种系统环境下,Windows内存管理器经常在内存中来回移动对象,以此来满足各种应用程序的内存需要。对象被移动意味着它的地址变化了。如果地址总是如此变化,我们该到哪里去找那一个对象呢?

  为了解决这个问题,Windows操作系统为全体应用程序腾出一些内存单元,用来专门登记各应用程序的对象在内存中的地址的变化,而前者的物理地址在系统运行期间是始终保持不变的。Windows内存管理器移动了对象在内存中的位置后,会把该对象新的地址及时地告知给对应的句柄进行更新。这样我们只要知道这个句柄,就可以间接地知道对象具体在内存中的哪个位置了。这个地址是在对象装载(Load)时由系统分配给的,当对象卸载时(Unload)又释放给系统。

版权声明:本文为博主http://www.feixueteam.net原创文章,未经博主允许不得转载。

windows获取桌面句柄

昨晚上一位朋友问我如何获取桌面句柄,当时第一反应就是用GetDesktopWindow()来获取,但是这个函数获取的是覆盖整个屏幕的句柄,如果只获取桌面的句柄,则不能使用这个函数。 通过Spy++发...
  • kaixiang54
  • kaixiang54
  • 2012年12月15日 15:03
  • 1413

java中对象句柄的解释

所有这些在Java里都得到了简化,任何东西都可看作对象。因此,我们可采用一种统一的语法,任何地方均可照搬不误。但要注意,尽管将一切都“看作”对象,但操纵的标识符实际是指向一个对象的“句柄”(Handl...
  • thiswj
  • thiswj
  • 2015年06月12日 23:34
  • 5114

检查调试句柄泄漏

Windows任务管理查看句柄数 任务管理–>查看–>选择列–>勾选“句柄数” process explorer查看句柄详细信息 process explorer 中双击指定进程打开...
  • Loadrunn
  • Loadrunn
  • 2016年05月04日 15:58
  • 1590

什么是句柄什么是句柄对象

对象(object): 是一件事、一个实体、一个名词,可以获得的东西,可以想象有自己的标识的任何东西。对象是类的实例化。一些对象是活的,一些对象不是。比如这辆汽车、这个人、这间房子、这张桌子、这株植...
  • u010236550
  • u010236550
  • 2014年04月26日 21:34
  • 3023

句柄与指针之间的区别

句柄与指针之间的区别: 首先,指针指向系统中物理内存的地址,而句柄是windows在内存中维护的一个对象内存物理地址列表的整数索引,句柄是一种指向指针的指针。     在windows系统中的内存...
  • u014041012
  • u014041012
  • 2015年04月04日 23:24
  • 2538

Win10-句柄异常的多,多达300万解决方式

感染病毒,使用360的抢救模式修复!
  • sinat_29970905
  • sinat_29970905
  • 2017年10月26日 07:37
  • 364

Matlab中的函数句柄@

Matlab中的函数句柄简介及应用。
  • YhL_Leo
  • YhL_Leo
  • 2016年02月19日 20:57
  • 11626

实例句柄

在Windows应用程序中,总需要加载应用程序文件到系统内存里,为了标识每个文件在内存的区别,Windows使用了句柄来标识这些文件。比如在一个应用程序里,有一个可执行文件(EXE)和多个动态连接库文...
  • caimouse
  • caimouse
  • 2014年08月12日 08:41
  • 2886

VB句柄概念-不懂以后深入理解

最近在学习windows API的时候发现在个叫句柄的概念搞不清楚,于是查了一下现在把自己的理解写出来,后面再贴网上的介绍。句柄是一个代表窗口的正整数,当然窗口的概念在这里包含了桌面、按钮、滚动条等,...
  • woshi1douzi
  • woshi1douzi
  • 2010年04月12日 19:12
  • 3669

函数句柄的理解

觉得自己很少用函数句柄,但是经常遇到,所以在这里总结一下。 函数句柄:是包含了函数的路径、函数名、类型以及可能存在的重载方法。 函数句柄必须通过专门的定义创建的,而一般的图像的句柄是自动建立的。 ...
  • u011936142
  • u011936142
  • 2013年12月19日 17:04
  • 4482
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:句柄
举报原因:
原因补充:

(最多只允许输入30个字)