永发信息网

windows 句柄到底是什么

答案:2  悬赏:70  手机版
解决时间 2021-12-28 02:42
windows 句柄到底是什么
最佳答案
句柄,是整个windows编程的基础。一个句柄是指使用的一个唯一的整数值,即一个四字节长的数值,来标志应用程序中的不同对象和同类对象中的不同的实例,诸如,一个窗口,按钮,图标,滚动条,输出设备,控件或者文件等。应用程序能够通过句柄访问相应的对象的信息,但是句柄不是一个指针,程序不能利用句柄来直接阅读文件中的信息。如果句柄不用在I/O文件中,它是毫无用处的。 句柄是windows用来标志应用程序中建立的或是使用的唯一整数,windows使用了大量的句柄来标志很多对象。
windows 之所以要设立句柄,根本上源于内存管理机制的问题—虚拟地址,简而言之数据的地址需要变动,变动以后就需要有人来记录管理变动,(就好像户籍管理一样),因此系统用句柄来记载数据地址的变更。
数据对象加载进入内存中之后即获得了地址,但是这个地址并不是固定的,(至于为什么以及什么情况下变动具体需要大家研究虚拟地址的原理与机制我这里只提我确定知道的例子)数据对象会根据需要在内存与硬盘之间游弋移动(例如不常用的数据会为常用数据让出其占用的内存空间进而被淘汰进硬盘中的虚拟内存之中以优化配置整体系统的资源进而提升效率性能),因此其物理地址总是变动的,那么作为管理者 则必须对 管理对象所发生的变化了如指掌才行,因此系统为进程分配固定的地址(句柄)来存储进程下的数据对象变化后的地址也就是当前的地址,其实设计机制很简单 :系统的某个部门移动了对象的地址后,同时上报给句柄所属部门管理者,管理者将改动写入句柄即可。该数据被重新起用时去其所属句柄内按内容存取即可。
句柄,英文:HANDLE,在Windows编程中是一个很重要的概念,在许多地方都扮演着重要的角色。但由此而产生的句柄概念也大同小异,比如:《Microsoft Windows 3 Developer's Workshop》(Microsoft Press,by Richard Wilton)一书中句柄的概念是:在Windows环境中,句柄是用来标识项目的。
在程序设计中,句柄是一种特殊的智能指针 。当一个应用程序要引用其他系统(如数据库、操作系统)所管理的内存块或对象时,就要使用句柄。
句柄与普通指针的区别在于,指针包含的是引用对象的内存地址,而句柄则是由系统所管理的引用标识,该标识可以被系统重新定位到一个内存地址上。这种间接访问对象的模式增强了系统对引用对象的控制。
在上世纪80年代的操作系统(如Mac OS 和Windows)的内存管理中,句柄被广泛应用。Unix系统的文件描述符基本上也属于句柄。和其它桌面环境一样,Windows API大量使用句柄来标识系统中的对象,并建立操作系统与用户空间之间的通信渠道。例如,桌面上的一个窗体由一个HWND类型的句柄来标识。如今,内存容量的增大和虚拟内存算法使得更简单的指针愈加受到青睐,而指向另一指针的那类句柄受到冷淡。尽管如此,许多操作系统仍然把指向私有对象的指针以及进程传递给客户端的内部数组下标称为句柄。
全部回答
感谢回答
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
凝心是什么意思
刚刚确定男女朋友关系,可是每次下班都是叫她
一袋鸡精有多少重量
为什么经常用电脑,会有好多字不会写?
---I seem to be lost. Could you tell me&nb
科技公司名称大全
神偷奶爸中英双字超清,注明是要讲英语的,有
温度由-5℃下降3℃后,结果可记为________℃
问一下王者荣耀橘右京现在不买以后还会出吗,
无法关闭查找我的iphone需要互联网连接是什么
一小时40分等于几分几秒
第三居委会办公位置在哪啊?好找么?
市政雨水是什么意思
跻身是什么意
今天是学校实验室的开放日,九年级1班某小组
推荐资讯
请问,蒲巴甲的西玛拉雅王子怎么买不到啊???,
碟中谍2与3中主角的女人还是同一个人吗
填空题如果一个几何体的主视图、左视图都是等
如何以日确定时辰干支?最好有速查表。
在几月份找工作好找?
怎么才能知道自己声音适合那首歌?
买的红糖粉,包装袋上注明,名称:红砂糖,配
怎样创建微信号
能和任何人顶嘴的话
下列式子中3.6=3χ、2У+3=15、5χ-0.5、4χ
女主叫田蜜的小说
手机文件管理器删除的文件怎么恢复
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?