句柄和指针的区别~
解决时间 2021-08-02 05:55
- 提问者网友:挥映在沉默里的渲染
- 2021-08-01 21:50
我想知道句柄是不是一个指针 msdn里边的定义不是很懂,windows .h的声明是
typedef void *HANDLE; 不就是说是一个无返回值的指针么 ,那么为什么hdc不能用成员运算符-> ? 设备描述表不是一个结构体么
最佳答案
- 二级知识专家网友:白胡子大佬
- 2021-08-01 23:25
其实,句柄某种程度上可以看成指针。
一般来讲,程序可以对内核对象拥有句柄,比如线程,进程,互斥量等。当应用该程序对新建了这些内核对象的时候,就会返回一个句柄,该句柄就指向该内核对象,应用程序就可以使用句柄对内核对象进行操作。
由于句柄只是一个地址而已,不具备其他的属性,所以不能使用->来访问。
全部回答
打个比方: 你朋友给你写信,他直接写你名字邮局是找不到你的,他就写出你家的门牌号,邮局通过门牌就能找到你了,那么门牌就是指针,而你本身就是指针指向的内存值. 你由于去砸110车窗户被关进局子(打比方呵呵,别打我~),和你一起的有老外,有外星人,大家名字都很长,很难记,监狱长为了方便,给每个犯人一个标号,比如你是0001,而另一个火星人是0002,那么以后监狱长碰到0001就知道是你了,不会去找火星人麻烦的.那么这个编号就是句柄,而你就是0001所代表的资源. 一个是指向,一个是代表,2个有很大的区别.代表的话,我用0001是代表,用abcdef还是代表,而门牌,就要按照规矩来,你不能用0003来代表XX街XX号的门牌 就是这个意思呵呵,希望我的比方对LZ有帮助
我要举报
如以上问答内容为低俗/色情/暴力/不良/侵权的信息,可以点下面链接进行举报,我们会做出相应处理,感谢你的支持!
点此我要举报以上问答信息
推荐资讯