永发信息网

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

答案:1  悬赏:20  手机版
解决时间 2021-03-19 17:47
函数句柄和指针的区别是什么
最佳答案
句柄实际上是一种指向某种资源的指针,但与指针又有所不同:指针对应着一个数据在内存中的地址,得到了指针就可以自由地修改该数据。Windows并不希望一般程序修改其内部数据结构,因为这样太不安全。所以Windows给每个使用GlobalAlloc等函数声明的内存区域指定一个句柄(本质上仍是一个指针,但不要直接操作它),平时你只是在调用API函数时利用这个句柄来说明要操作哪段内存。当你需要对某个内存进行直接操作时,可以使用GlobalLock锁住这段内存并获得指针来直接进行操作。“句柄”(handle),handle的本意是把柄,把手的意思。是你与操作系统打交道的东西。举个例子:比如你做了亏心事(我说的是比如,呵呵),不幸让我抓住了把柄,那么我让你做什么你就得做什么,因为你的把柄在我这。我们编程的时候也是这样,比如我们要想操纵一个窗口,那我们就必须“抓住它的把柄”,只有这样,我们才能改变它的属性,改变它的式样,甚至销毁它(狠了点儿)。我们再引用一个通俗一点的例子,比如你考上了大学,入学后,学校(操作系统)会给你一个学生证号。注意,这个号码是学校指定的,你无法自选。有了这个号码(学生证,假设一证多用)就可以享受学校提供的服务:如你就可以去图书馆借书,去食堂吃饭,去教室上课等等。但你不能到食堂里买啤酒,因为学校不允许这种服务。而在计算机中系统提供的服务就是API调用,你有了HANDLE,就可以理直气壮地向系统提出调用API的服务。而指针的权力就大多了,有了指针你可以到处去喝酒,打架,学校(操作系统)管不着,所以句柄和指针的区别在于句柄只能调用系统提供的服务。而句柄虽然是一个能相互区别的号码,但与我们普通的ID号又有区别,普通的ID号是可以由程序员自己定义的,而句柄不行,它是对象生成时系统指定的,是为了区别系统中存在的各个对象,这个句柄不是由程序员赋给的。实际应用中,最常用的就是文件句柄和窗口句柄。例如,窗口句柄的值是一个长整数,每个窗体都用一个句柄来表示。所以句柄是不会重复的,很多的函数都会用到窗体的句柄。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
百度1000G网盘太弱了?看腾讯微云送10000G网盘
香港城市大学申请phd是否需要寄送雅思成绩单
问: LOL里面有一个施法 就是你是智能施法 然
QQ西游VIP飞剑怎么得得
为啥这么敷衍我?做普通朋友不行吗?我在你眼
可见光,不可见光,无线电波,微波都属于什么
金品蛋糕地址在哪,我要去那里办事
我车被刮了报保险第二年要多交钱吗?
游戏王决斗的时候 罪怪兽除外的怪兽能不能用
我今年25,女,现在在深圳沙井镇宝安区共和村
去火车站怎么买火车票
厦门人才网如何导入自己的简历,而不按它原来
我好像离不开手机,动漫了,学习成绩下降,都
有沈阳可以交心的朋友吗
从广州花都新华镇怎样到花东镇?
推荐资讯
清河街/解放道(路口)地址在哪,我要去那里办
怎样才能进日企?
清蒸栗子的做法,清蒸栗子怎么做好吃,清蒸栗
芭乐宾馆保健路店在哪里啊,我有事要去这个地
于家产村地址在哪,我要去那里办事
QQ飞车 改装什么程度是强?K24
我是大庆油田子女,2013届毕业生,2表本科主
车骑王汽车服务连锁机构NO.022这个地址在什么
能进行图片标注操作的软件有哪些推荐?
求推荐历史类穿越小说,要求如下
双翘板要练多久才能把最基本的练会?新手要买
我用微信遇到一个26岁漂亮的女的,她说是做生
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?