相关疑难解决方法(0)

指针与C中的句柄(用于传达单独事物的术语?)

最近,我读了一篇个人的白皮书,他将一个指向结构的指针作为句柄.作者显然是以前在Windows平台上编写过C代码的人.谷歌搜索表明Windows程序员通过句柄与系统组件交互.我想知道Windows程序员是否通常将所有结构指针都称为句柄?或者术语句柄是否意味着传达超出指针结构的东西?我问作为Linux C程序员.

我指的白皮书是:Duff,Heroux和Pozo.稀疏基本线性代数子程序概述:BLAS技术论坛的新标准.ACM Transactions on Mathematical Software,Vol 28,No.2,June 2002,Pages 239-267.

c windows pointers handle

21
推荐指数
4
解决办法
2万
查看次数

有什么区别:Handle,Pointer和Reference

句柄如何与指向对象的指针不同,以及为什么我们不能引用引用?

c++ oop pointers reference handle

19
推荐指数
4
解决办法
2万
查看次数

指针和句柄之间有什么区别

我不能说我有强大的C++背景,所以这些天我经常听到Handle.我知道Pointer是什么(它存储内存位置的地址就像参考),但我不确定Handle是什么以及这两者之间的区别.如果你能提供一个C#中的示例代码就会很棒.

顺便说一下,我用Google搜索了这个术语,然而很多人给出了不同的解释,所以我觉得我从SO中得到了最好的解释.

编辑:

为其他访客快速提醒:句柄就像是指向资源的参考.它可以指向像指针一样的内存地址,但Handle是更通用的术语,所以它更像是一个伪指针.文件就是一个很好的例子.文件可以具有操作系统可以理解并用于查找文件的ID.因此Handle可以保存此ID(可能是也可能不是内存地址),当我们通过此Handle时,OS可以轻松找到该文件.

有关更多详细信息,请参阅以下答案.

编辑:

这个问题下的所有答案都很棒,很有说服力.我很难选择其中一个来标记它作为答案.

.net clr pointers handle

9
推荐指数
3
解决办法
3924
查看次数

究竟什么是"处理"?

我经常听说过"手柄",究竟是什么?

编辑:例如我听说过:windows处理事件处理文件句柄

等等.那些东西是一样的吗?或者他们是一些抽象的术语?

terminology handle

7
推荐指数
2
解决办法
1613
查看次数

C++ 中的句柄、空指针、对象

因此,我正在阅读有关C 语言句柄的文章,并意识到我们将句柄实现为 void 指针,因此我们获得的“任何”对象/数据类型都可以将 void 指针转换为该类型的对象/数据并获取其值。所以我基本上有两个担忧:

1.如果让我们说下面的例子取自C中的Handle

 typedef void* HANDLE;   
 int doSomething(HANDLE s, int a, int b) {
         Something* something = reinterpret_cast<Something*>(s);
         return something->doit(a, b);
     }
       
Run Code Online (Sandbox Code Playgroud)

如果我们将值传递给函数dosomething(21,2,2),这是否意味着 HANDLE 指向的值是 21,如果是的话,当我们键入时,任何对象如何将其转换为该对象,它是否能够使用它,就像在这个例子中一样,所以在换句话说,指向对象 Something 的指针something将在哪里存储值 21。

2.其次,该链接还显示“因此,在您的代码中,您只需将 HANDLE 作为不透明值传递”,这实际上是什么意思?为什么我们要“传递句柄”?如果有人能给出更有说服力的使用对象的句柄示例,那就太好了!

c++ handle void-pointers

2
推荐指数
1
解决办法
5623
查看次数

标签 统计

handle ×5

pointers ×3

c++ ×2

.net ×1

c ×1

clr ×1

oop ×1

reference ×1

terminology ×1

void-pointers ×1

windows ×1