1

COM と XPCOM の違いについて少し説明しているリンクがここにあることは知っていました。

XPCOMとは?XPCOM 対 COM?

しかし、私はこのトピックをより詳細に知りたいと思っています。たとえば、参照カウントと型推論では、COM は IUnknown から継承され、XPCOM は nsISupport から継承されます。名前付け以外の IUnkown と nsISupoort の違いは何ですか?

さらに、これら 2 つの異なるコンポーネントは、異なるスレッド管理またはメモリ管理をサポートしていますか? このようなトピックは私にとって非常に興味深いものです。

ご存知の方はこの投稿に返信してください。ありがとう

4

1 に答える 1

3

名前付け以外の IUnkown と nsISupoort の違いは何ですか?

なし、本当に。は、FireFox が ActiveX コントロールを簡単にホストし、それ自体を ActiveX コントロールとして公開できるようにするために、nsISupoortとのバイナリ互換性を持つように特別に設計されました。IUnknown

これら 2 つの異なるコンポーネントは、異なるスレッド管理またはメモリ管理をサポートしていますか?

はい。nsMemory::AllocXPCOM は、COM アロケータ ( et al) から完全に独立した独自のメモリ アロケータ ( et al) を使用しCoTaskMemAllocます。COM は、広範なスレッド モデルのセットとマーシャリング サポートを提供します。XPCOM はスレッドをほとんど処理せず (「参考文献」を参照nsIProxyObjectManager)、マーシャリングの概念もありません。

警告: この情報は古い可能性があります。Mozilla の開発状況に関する私の知識は、2010 年頃の最新情報です。

于 2014-02-24T23:34:04.773 に答える