Gecko NSModule:ContractIDentry“nsID const *”?
我创建了一个 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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
完整的声明是这样的:
正如
contractid
的声明意味着结构体包含一个指向 char 的指针,而不是 char 是结构体的一部分,cid
的声明> 表示该结构体包含一个指向 nsID 的指针。该结构不包含 nsID,仅包含一个指向 nsID 的指针。从技术上讲,它是一个不允许用来修改所指向值的指针,但Delphi没有这个概念,所以将它声明为普通指针。
The full declaration is this:
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 ofcid
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.