2010-12-01 9 views
0

私がやっているプロジェクトでは、Macアプリケーションがプラグインを受け入れるようにしたい。私は、バンドルをアプリケーションに追加して機能を拡張するというアイデアが気に入っています。私はいくつかの機能のために自分のアプリケーションでJSONパーサーを、含める必要がプラグインアーキテクチャ、アプリケーション内のコードへのアクセス?

は、私だけは、私は答えを見つけることができない小さな問題、出くわしました。プラグインバンドルでも同じパーサを使用することは可能ですか?あるいは、JSONパーサーを使用するすべてのプラグインは、パーサ自体を組み込む必要がありますか?

別々のバンドルでこれを行うにはどうすればよいですか?

答えて

2

OSXには、dylibプラグインの2種類があります。 (これら二つの用語は、マッハ - Oとの関連でOS Xが使用するバイナリ形式の技術的意義を特化している。)

Aはがロードプラグインながら、実行中のライブラリを参照することができないdylibをロードできる。副作用としてdylibは実行可能ファイルにロードできますが、プラグインは、プラグインの作成時に指定した実行可能ファイルにのみロードできます。

プラグインをにしたいとします。それを行うためのXCodeにテンプレートがあります。リンカフラグにターゲット実行可能ファイルを指定することを忘れないでください。リンカフラグはインスペクタのどこかに設定できます。

詳細については、Code Loading Programming Topicsをお読みください。

+0

プラグインとアプリケーションの間でコードを共有するには、その共有コードとすべての必須ヘッダーを含むフレームワークを作成し、そのフレームワークにアプリケーションをリンクし、プラグインをリンクするのが最も簡単です。フレームワークをアプリケーション内に埋め込んで、プラグイン開発者に開発時にアプリケーションバンドルから取得させることができます。 – d11wtq

+0

答えをいただきありがとうございます。プロとコンスの一部を読んだ後で、バンドルを使用してプラグインが必要なものだけを提供することにしました。ありがとう –

関連する問題