1

IPlugin私のメインアプリケーションはC#であり、とを宣言する別の.NETDLLを参照しますIPluginHost。メインアプリのプラグインを作成できるように、このDLLをDelphiプロジェクトにインポートする必要があります。これは可能だと聞きましたが、クラスのインポート(私は望まない)や.NET内でのDelphiコードの実行についてはたくさんあります

誰が明確にすることができる前に誰かがこれをしましたか?

4

2 に答える 2

3

Delphi で .NET インターフェイスを直接実装するのは非常に困難です (可能かどうかさえわかりません)。ただし、手をどれだけ汚したいかによって、いくつかの選択肢があります。

1) Delphi で ActiveX DLL を作成し、このライブラリを .NET にインポートできます。次に、インターフェイスを実装するプロキシ クラスを C# で作成し、呼び出しを Delphi ActiveX DLL にルーティングするだけです。

2) Delphi でネイティブ Windows DLL を作成し、.NET でインターフェイスをコーディングできます。次に、インターフェイスを実装するプロキシ クラスを C# で作成し、呼び出しを Delphi DLL にルーティングするだけです。

3) .NET と Delphi の両方をサポートする Hydra (http://www.remobjects.com/hydra/) のようなプラグイン フレームワークを使用できます。

.NET コードは両方で実行できますが、Delphi コードは環境ごとに個別にコンパイルする必要があるため、これらのすべてのケースで、32/64 ビットの状況を慎重に処理する必要があります。

状況によっては、Oxygene (http://www.remobjects.com/oxygene/) と呼ばれる .NET バイト コードを生成するオブジェクト パスカルの形式で Delphi コードを記述することもできます。

編集: .NET プラグイン フレームワークで使用する Delphi プラグインを作成しようとしている場合は、次のようにするのが最善です。

IPlugIn および IPlugInHost インターフェイスに一致する新しいインターフェイスを Delphi で作成します。次に、ロードする Delphi プラグインを指定するための構成情報を持つ .NET Delphi プラグイン ラッパーを作成できます。次に、この .NET ラッパーは Delphi DLL をロードし、必要に応じて DLL メソッドを呼び出します。視覚的なものにはある種の ActiveX ラッパーが必要ですが、非視覚的なものは問題なく使用できるはずです。

于 2012-10-09T18:32:16.910 に答える
2

最も簡単な方法は、Delphi 用の .NET to COM ラッパー dll を提供することです。私は、これが .NET とやり取りする最も簡単な方法であることがわかりました。

于 2012-10-09T21:01:21.640 に答える