2009-06-09 20 views
2

私は、C#クラスライブラリで関数を呼び出す(値を渡し、値を返す)必要があるC++ DLLを持っています。私のC++ DLLでC#DLLを呼び出す方法は何ですか?

私の唯一のオプションは、C#DLLにCOMインターフェイスを与え、C++からIDispatchで呼び出すことですか?

これが最適な方法ですか?

+0

管理されたC++を使用してCOMを完全に回避する方法はありますか? – Stu

+0

これはC#アプリかC++アプリですか? – jjxtra

+0

これでJonSkeetが何を言っているのか疑問に思ったことがあります。:-) –

答えて

5

カップル

  1. は、キーC#のタイプのいくつかを露出させることによりCOMブリッジを使用し
  2. C++やC#DLLの間のブリッジとして混合モードのC++/CLIのアセンブリを使用しますCOMオブジェクトとして。これは、通常のCOMセマンティクスによってC++コードを介してアクセスできます。
0

COMを介して呼び出す方法があります。 the Regasm toolを使用してCOMラッパーを作成できます。

0

オプションではありません。

C++ DLLを管理DLLとしてコンパイルすることもできます。

サービスとしてC#DLLをホストし、リモートにすることができます。ここにあなたのために利用可能なオプションの

+0

注目、私は私の答えを更新しました。 – Rob

1

This projectクラスの静的メソッドのdllエクスポートを作成します。その後、アンマネージコードからC#静的メソッドを呼び出すことができます。

関連する問題