2009-08-28 14 views
3

DLLを必要とするEclipse RCPプラグインがあります。Eclipse RCPプラグインにDLLをロードする方法は何ですか?

DLL参照をMANIFESTに追加するために推奨されるベストプラクティスは何ですか? DLLをどこに置くべきですか?推奨されるディレクトリ名は何ですか?

私は矛盾する慣行を読んでいます。いくつかは、アーキテクチャーとプロセッサータイプのフォルダーを作成するように求めています。マニフェストにいくつかのプラットフォームフィルターを設定することを求める人もいます....

+0

私はあなたが他のことを言っていると思われるどんなドキュメンテーションにも興味があると思います。参考文献を投稿することができます –

答えて

2

Eclipseアプリケーションでの最良の方法は、プラグインフラグメントを使用することです。標準のEclipseプロジェクト(dllを含む)は、サポートされているすべてのプラットフォームに対して複数のフラグメントを持ちます。フラグメントは、ターゲットプラットフォーム(Platform Filterで指定されている場合)でのみ有効になります。 (標準のEclipseをインストールして提供)日食のドキュメント

プラットフォームフィルターから

は、プラグインの実行するために実行しているシステムでtrueに評価しなければならない有効なLDAP文字列です。たとえば、次のフィルタは、プラグインがwin32ウィンドウシステムのプラットフォームでのみ実行されるように設計されていることを示しています。Eclipse-PlatformFilter :(ws = win32)。ユーザーがこの要件を満たしていないプラットフォームでEclipseを実行しようとすると、プラグインはランタイムによって暗黙に無視されます。

+0

可能であれば、EclipseのカスタムEclipse-PlatformFilterヘッダーではなく標準のOSGiフィルターを使用することをお勧めします。 – SteveD

+0

これは私が使用しているものですが、OSGIフィルタをsteven –

0

私はorg.eclipse.swt.win32フラグメントとバンドルそれらは瓶の根元にある。

参照のために、スタンドアロンのサンプルをどのように実行するかについて説明するセクションがあります。SWT Examples documentation

+1

実際のEclipseコードで見つかったプラクティスには注意が必要です。一般的に最新の推奨事項を使用していません(常に成熟したコードベースの問題)。 – SteveD

+0

@stevendick私はあなたのポイントが何であるか明確ではない、私の答えはフラグメントを使用し、jarファイルにdllを置くことを提案する。マラクサーの後の答えと同じだ。 –

+0

はい、基本的な原則は同じですが、私が見たEclipseコードの中には、実行時にロードされるフラグメントを制御するために標準OSGiフィルタを使用していないものがあります。 Malaxeurの提案では、標準のOSGiではなくEclipseマニフェスト拡張を使用しています。 – SteveD

1

Eclipse RCPはOSGiに基づいているので、OSGi 4.1のドキュメントでネイティブコードを処理することもできます。私は、Eclipseの人がOSGiのアプローチを推薦し始めたと信じていますが、私はその推奨を見た場所を思い出すことができません。

私は、フラグメントとフィルタの使用に関してMalaxeurの提案を使用しました。フラグメント/バンドル内の実際のレイアウトは重要ではありませんが、複数のライブラリがある場合は別々のlibディレクトリを作成します。

OSGi 4.1仕様はhereです。

関連する問題