C句柄 - 如何使用它们?

时间:2010-07-22 17:35:42

标签: c handle

我在Dreamweaver的插件中有一些文档我说的如下:

  

void ** connectionData

     

•connectionData参数是a   处理代理的数据   想让Dreamweaver传递给它   调用其他API函数。

对于connectionData,我手册中没有其他信息。从字面上思考,我认为句柄指的是通用句柄,但我无法找到有关使用C语言的通用句柄的文档。

HANDLE h = connectionData;

在我的代码中编译。我究竟如何获得此数据结构中的“秘密”/有人可以解释C的通用句柄是如何工作的?

3 个答案:

答案 0 :(得分:4)

嗯,通常你不应该得到手柄的秘密;它们通常只是指向您正在使用的lib / API内部结构的指针,只有lib才知道如何使用它。

没有关于句柄的通用规则或任何内容,您必须按照lib的文档所示使用它们。

答案 1 :(得分:2)

定义它的方式,connectionData是指向某事物的指针。在不知道分配给connectionData的内容的情况下,您无法了解其他任何内容。你的其他陈述有效的原因是HANDLE可能是一个扩展为void *

的宏

要知道“秘密”,你需要找出什么结构(这是猜测 - 它实际上可能是任何数据类型)connectionData指向,然后查看该结构的定义。我不知道你对编程有多熟悉,但调试器允许你在断点处暂停时轻松查看struct的字段。

但是,正如其他人所说的那样,你可能不希望捣乱任何内容,只使用API​​调用。

答案 2 :(得分:0)

C开发人员在特别想要隐藏内部数据并使API用户不再使用实现时,会使用“句柄”数据类型。句柄有时只是一个指针,但也可以是内部查找表的索引。

通常,您应该只使用提供的API函数和句柄,并学习正确的方法来获取句柄,了解它的生命周期以及如何在完成后正确处理它。