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