29

このC# dll を C++ コードに統合する必要があります。C# で記述されたいくつかの関数を dll から呼び出し、残りのコードは C++ で記述したいと考えています。それを行うための最も簡単で迅速な方法は何ですか? プログラムは Windows でのみ実行されます。

4

1 に答える 1

31

アンマネージ コードから .NET DLL を呼び出すには、基本的に次の 2 つのケースがあります。

  1. .NET DLL は、COM インターフェイスを公開します。この場合、C++ コードから COM を使用できます。
  2. .NET DLL は COM インターフェイスを公開しません。この場合、(簡単にするために) 2 つの可能性があります。

    2.a. ここで説明されているように CLR をホストします:プロセスへの共通言語ランタイムの読み込み
    2.b. マネージド C++ コード (別の DLL - C++/CLI で記述) を記述して、.NET DLL をラップし、「古い方法」の DLL エクスポートをアンマネージド クライアントに公開します。

私は特にsharpboxシステムを知りませんが、それは純粋な.NETであり、COMインターフェイスを公開していないように見えるので、2.bが最善の方法かもしれません(それほど簡単ではありません...)。おそらく、使用できる REST/Web により簡単な API があるでしょう。

PS: エクスポートを .NET DLL に追加することもできます。これはここで説明されています: Is is possible to export functions from a C# DLL like in VS C++? しかし、それはちょっとハッキーです。

于 2013-10-02T21:00:23.603 に答える