Gecko NSModule:ContractIDentry“nsID const *”?

发布于 2024-09-30 04:43:13 字数 457 浏览 3 评论 0原文

我创建了一个 FireFox 插件,发现它在 FireFox 3.6 上停止工作 显然,NSGetModule 正在被 NSModule 结构取代,所以我必须适应。 我正在使用 Delphi 编写我的产品,因此我必须将新代码移植到 Object Pascal。

如果我查看这段代码: http://mxr.mozilla.org/mozilla-central/source /xpcom/components/Module.h

我注意到 ContractIDEntry 结构体的“cid”属性被定义为 nsID const *

这是否意味着有一个指向 nsID 变量的指针结构体, 或者 nsID 值本身就是结构的一部分?

I created a FireFox addon a while a go, and noticed it stopped working on FireFox 3.6
Apparently, NSGetModule is being replaced with an NSModule structure, so I have to adapt.
I'm coding my product with Delphi, so I have to port the new code to Object Pascal.

If I look over this code:
http://mxr.mozilla.org/mozilla-central/source/xpcom/components/Module.h

I notice that the "cid" property of the ContractIDEntry struct, is defined as nsID const *

Does this mean that there's a pointer to a nsID variable in the struct,
or that the nsID value is itself part of the struct?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

终难愈 2024-10-07 04:43:13

完整的声明是这样的:

struct ContractIDEntry
{
  const char* contractid;
  nsID const * cid;
};

正如 contractid 的声明意味着结构体包含一个指向 char 的指针,而不是 char 是结构体的一部分,cid 的声明> 表示该结构体包含一个指向 nsID 的指针。该结构不包含 nsID,仅包含一个指向 nsID 的指针。

从技术上讲,它是一个不允许用来修改所指向值的指针,但Delphi没有这个概念,所以将它声明为普通指针。

The full declaration is this:

struct ContractIDEntry
{
  const char* contractid;
  nsID const * cid;
};

Just as the declaration of contractid means that the struct contains a pointer to a char and not that the char is part of the struct, the declaration of cid means the struct contains a pointer to an nsID. The struct does not contain an nsID, merely a pointer to one.

Technically, it's a pointer that is not allowed to be used to modify the pointed-to value, but Delphi doesn't have that concept, so declare it as just an ordinary pointer.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文