1

C# アプリケーションで C++ ライブラリを使用するために dll インポート + ラッピング (マネージ) を使用できることは知っていますが (質問リンク>> )、逆は何ですか? C++ アプリケーションで C# ライブラリを使用するにはどうすればよいですか? イベント/操作/結果は C# ライブラリで処理しますが、アプリケーションは C++ で作成しました。たとえば、これが私の C++ アプリケーションです。

//この例では; Manager は私の C# ライブラリのインスタンスになり、Log は何かを出力できる C# ライブラリの関数です。(これは単なる例であり、機能しません。私の質問を理解するために何かを説明するため)

int main()
{
   if(MySystem.Start() == 0) //If there is no error
   {
      Manager.Log("System started successfully!"); //Post it to C# library!
   }
   return 0;
}

編集:ソリューションはネイティブ C++ である必要があります。C++\CLI は使用しません。

編集: C++ アプリケーションのみがネイティブになります。つまり、C# ライブラリを処理するための共有 C++ ライブラリを作成できます。C++アプリ(イベント) >> C++\CLI Lib. >> C# ライブラリ、この方法で可能です。例/トピック/出発点はありますか?

>> 私の解決策 (回答後、他の人に役立つはずです): C++\CLI 共有ライブラリを作成し、それをネイティブ C++ アプリで使用します。このライブラリは、私の C# ライブラリを処理します (この質問の詳細については>> )。C# が必要ない場合は、C++\CLI ライブラリをネイティブ ライブラリとして再コーディングします。それはかなり便利だと思います。

4

3 に答える 3

-1

インターフェイスを C# ライブラリから C++ 互換レイヤーに公開するように注意する必要があります。

私の頭の上から、あなたは2つのことをすることができました:

  • C# ライブラリの上に C API を作成します (ライブラリに C++/CLI レイヤーを追加するのが最善の方法です)。

  • C# ライブラリへの COM インターフェイスを作成し、COM オブジェクトを介してライブラリを使用します。

于 2013-09-03T11:59:54.283 に答える