问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

函数句柄和指针的区别是什么

发布网友 发布时间:2022-05-06 08:24

我来回答

2个回答

热心网友 时间:2022-06-29 03:00

句柄实际上是一种指向某种资源的指针,但与指针又有所不同:指针对应着一个数据在内存中的地址,得到了指针就可以自由地修改该数据。Windows并不希望一般程序修改其内部数据结构,因为这样太不安全。所以Windows给每个使用GlobalAlloc等函数声明的内存区域指定一个句柄(本质上仍是一个指针,但不要直接操作它),平时你只是在调用API函数时利用这个句柄来说明要操作哪段内存。当你需要对某个内存进行直接操作时,可以使用GlobalLock锁住这段内存并获得指针来直接进行操作。“句柄”(handle),handle的本意是把柄,把手的意思。是你与操作系统打交道的东西。举个例子:比如你做了亏心事(我说的是比如,呵呵),不幸让我抓住了把柄,那么我让你做什么你就得做什么,因为你的把柄在我这。我们编程的时候也是这样,比如我们要想操纵一个窗口,那我们就必须“抓住它的把柄”,只有这样,我们才能改变它的属性,改变它的式样,甚至销毁它(狠了点儿)。我们再引用一个通俗一点的例子,比如你考上了大学,入学后,学校(操作系统)会给你一个学生证号。注意,这个号码是学校指定的,你无法自选。有了这个号码(学生证,假设一证多用)就可以享受学校提供的服务:如你就可以去图书馆借书,去食堂吃饭,去教室上课等等。但你不能到食堂里买啤酒,因为学校不允许这种服务。而在计算机中系统提供的服务就是API调用,你有了HANDLE,就可以理直气壮地向系统提出调用API的服务。而指针的权力就大多了,有了指针你可以到处去喝酒,打架,学校(操作系统)管不着,所以句柄和指针的区别在于句柄只能调用系统提供的服务。而句柄虽然是一个能相互区别的号码,但与我们普通的ID号又有区别,普通的ID号是可以由程序员自己定义的,而句柄不行,它是对象生成时系统指定的,是为了区别系统中存在的各个对象,这个句柄不是由程序员赋给的。实际应用中,最常用的就是文件句柄和窗口句柄。例如,窗口句柄的值是一个长整数,每个窗体都用一个句柄来表示。所以句柄是不会重复的,很多的函数都会用到窗体的句柄。

热心网友 时间:2022-06-29 03:01

句柄与指针的区别:指针包含的是引用对象的内存地址,而句柄则是由系统所管理的引用标识,该标识可以被系统重新定位到一个内存地址上。这种间接访问对象的模式增强了系统对引用对象的控制。
联系:在程序设计中,句柄是一种特殊的智能指针 。
简介:
句柄,是整个Windows编程的基础。一个句柄是指使用的一个唯一的整数值,即一个4字节(64位程序中为8字节)长的数值,来标识应用程序中的不同对象和同类中的不同的实例,诸如,一个窗口,按钮,图标,滚动条,输出设备,控件或者文件等。
指针(Pointer)是编程语言中的一个对象,利用地址,它的值直接指向(points to)存在电脑存储器中另一个地方的值。由于通过地址能找到所需的变量单元,可以说,地址指向该变量单元。因此,将地址形象化的称为“指针”。意思是通过它能找到以它为地址的内存单元。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
弱弱的问一句R9 270X显卡怎么样~ 能带得起我的AMD 240CPU么?_百度知 ... i54570cpu华硕z87a主板要配多少的内存条和显卡 i5 3570k配R9 270X显卡,用什么主板和电源? 很容易上火是什么原因 口干舌燥五心烦热失眠多梦夜不能寐请问是什么原因,吃什么能有效... 想问看大家对老妻少夫的问题有何看法? ...战记第十三章第6关打法 山海战记13-6攻略-手游攻略-游戏鸟手游网 ...战记第十七章第1关打法 山海战记17-1攻略-手游攻略-游戏鸟手游网 ...山海战记9-6图文攻略-手游攻略-游戏鸟手游网 ...战记第十二章第2关打法 山海战记12-2攻略-手游攻略-游戏鸟手游网 VB 获得窗口句柄 Windows服务怎么获取窗口句柄? 怎样获得当前鼠标所在位置的窗口句柄? 知道一个窗口的ID,用什么函数得到它的句柄 获得当前窗口句柄用函数GetForegroundWindow(),获得的是哪个窗口的句柄? Win32获取屏幕句柄的函数是什么? 理科490分能上什么公费师范院校? 今年490分能上什么大学 北京490分理科能上什么大学 河南490分理科能上什么大学 490分理科能上什么大学2020 山东高考理科490分能上什么大学,名次排名十二万多 山东理科490分能上什么大学 2020高考理科490分能上什么二本大学 什么是morph target?翻成中文是什么? 求男主穿越女尊国小说,1V1的 跪求男主穿到女尊世界的小说 求男穿女尊小说 男主穿越到女尊 男穿女尊文要求: findwindow函数获取的是窗口句柄吗?? 窗口句柄是什么型的? MFC中获取窗口句柄是哪个窗口的句柄,是自己开发窗口的句柄吗? 获得句柄后能做什么,讲通俗一点 如何利用窗口句柄获取控件信息在win32控制台建立ascii窗体 易语言知道一个窗口句柄(标题也可以知道),怎么把这个窗口进行窗口置父操作,急求!!!!!!!!!!!! DNF窗口句柄是什么? MFC中,如何获取一个已知窗口标题的窗口的句柄 vb中如何获得一个窗口的句柄 C语言找到窗口句柄,然后进行后台鼠标键盘操作 每一个窗口都有一个固定的句柄吗? 日语翻译!如何 如何提高日语翻译(中翻日)水平? 如果用日语翻译是如何 日语翻译工作如何?(请有经验的人解答) 日语翻译是如何 日语翻译是如何呢? 物流公司上门取件如何收费? 最终幻想7的如何使用MORPH指令??? 谁能通俗的解释一下买股票的赚钱赔钱的基本原理 满足的英语怎么写