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 値自体が構造体の一部であるということですか?

4

1 に答える 1

3

完全な宣言は次のとおりです。

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

の宣言がcontractid構造体にcharへのポインタが含まれていることを意味し、charが構造体の一部であることを意味しないのと同様に、の宣言はcid構造体にnsIDへのポインタが含まれていることを意味します。構造体にはnsIDは含まれず、nsIDへのポインタのみが含まれます。

技術的には、ポイントされた値を変更するために使用することは許可されていないポインタですが、Delphiにはその概念がないため、通常のポインタとして宣言してください。

于 2010-10-31T22:07:53.160 に答える