windows 之所以要设立句柄,根本上源于
内存管理机制的问题—
虚拟地址,简而言之数据的地址需要变动,变动以后就需要有人来记录管理变动,(就好像户籍管理一样),因此系统用句柄来记载数据地址的变更。
数据对象加载进入内存中之后即获得了地址,但是这个地址并不是固定的,(至于为什么以及什么情况下变动具体需要大家研究虚拟地址的原理与机制我这里只提我确定知道的例子)数据对象会根据需要在内存与硬盘之间游弋移动(例如不常用的数据会为常用数据让出其占用的内存空间进而被淘汰进硬盘中的虚拟内存之中以优化配置整体系统的资源进而提升效率性能),因此其物理地址总是变动的,那么作为管理者 则必须对 管理对象所发生的变化了如指掌才行,因此系统为进程分配固定的地址(句柄)来存储进程下的数据对象变化后的地址也就是当前的地址,其实设计机制很简单 :系统的某个部门移动了对象的地址后,同时上报给句柄所属部门管理者,管理者将改动写入句柄即可。该数据被重新起用时去其所属句柄内按内容存取即可。
句柄,英文:HANDLE,在Windows编程中是一个很重要的概念,在许多地方都扮演着重要的角色。但由此而产生的句柄概念也大同小异,比如:《Microsoft Windows 3 Developer's Workshop》(Microsoft Press,by Richard Wilton)一书中句柄的概念是:在Windows环境中,句柄是用来标识项目的。
在
程序设计中,句柄是一种特殊的智能指针 。当一个应用程序要引用其他系统(如
数据库、
操作系统)所管理的内存块或对象时,就要使用句柄。
句柄与普通指针的区别在于,指针包含的是引用对象的内存地址,而句柄则是由系统所管理的引用标识,该标识可以被系统重新定位到一个内存地址上。这种间接访问对象的模式增强了系统对引用对象的控制。
分享到:
相关推荐
Arcgis 学习--COM 组件的调用返回了错误 HRESULT E_FAIL
试图加载格式不正确的程序。 (异常来自 HRESULT0x8007000B)
可以查询大部分微软错误代码的含义;
COM技术COM技术COM技术 参考书是COM技术内幕,如果大家要看某一部分,课件就很好了
软件安装过程中提示“无法注册模块C:\Program Files\XXXXXXX HRESULT-2147010895.请与您的技术支持人员联系。”的问题,以上是我针对自身遇到情况做的一个解决该问题的教程,有错的地方,望大家批评指正。
Add-AppxPackage : 部署失败,原因是 HRESULT: 0x80073CF3, 包无法进行更新、相关性或冲突验证。 Windows 无法安装程序包 MicrosoftCorporationII.WindowsSubsystemForAndroid_1.7.32815.0_x64__8wekyb3d8bbwe,因为...
快速查看AE运行过程出现的1000多个异常代码对应的错误描述,如HResult:0x80040210,对应Invalid envelope encountered. HResult:0x80040228,对应License not intialized。
主要介绍了VS2019添加引用出错:对COM组件的调用返回了错误HRESULT E_FAIL(未能完成操作。未指定的错误),需要的朋友可以参考下
基于异常的错误检查,可自动执行FAILED()比较。
NULL 博文链接:https://wooffen.iteye.com/blog/836226
本篇文章是对HRESULT与Windows Error Codes的区别进行了详细的分析介绍,需要的朋友参考下
C# winform缺失 libtensorflow.dll,c# 无法加载DLL“###.dll”,: 找不到指定的模块。 (异常来自 HRESULT:0x8007007E)
ASP.NET和IIS出错问题总结 ASP.NET和IIS出错问题总结 ASP.NET和IIS出错问题总结
• COM——到底是什么?——COM标准的要点介绍,它被设计用来解决什么问题 • 基本元素的定义——COM...• 基本接口——描述IUnknown基本接口及其方法 ...• 处理HRESULT——HRESULT类型描述,如何监测错误及成功代码
COM——到底是什么?——COM标准的要点介绍,它被设计用来解决什么问题? 基本元素的定义——COM术语以及... ... 基本接口——描述IUnknown基本接口及其方法。 ...处理HRESULT——HRESULT类型描述,如何监测错误及成功代码。
问题:没有注册类 (Exception from HRESULT: 0x80040154 (REGDB_E_CLASSNOTREG))。用来解决此问题缺少的dll文件。博客中有问题描述及解决方法:链接:https://blog.csdn.net/qq_34147601/article/details/115303651
本节课程了解什么是性能测试,掌握性能测试得流程和方法,熟练使用某种性能测试工具等内容,扣丁学堂软件测试技术交流群:338750406 资源太大,传百度网盘了,链接在附件中,有需要的同学自取。
Excel 权限错误和应用程序8000401A错误解决办法;对 Excel进行编程,实际上就是通过 .Net Framework去调用 ... 很多朋友都反映在 Windows环境下调试正常的程序,一拿到 Web环境中就出错,实际上就是因为缺少了这一步。