2

サーバー/クライアント アプローチまたはファイル保存/ロード アプローチを使用する代わりに、2 つの別個の C++ および C# アプリケーション間でオブジェクトを転送する方法はありますか?

実際に私がやろうとしているのは、プロジェクトの GUI 部分を C# で作成し、プロジェクトの一部を C++ で作成し、これら 2 つのアプリケーション間で通信することによって、先に進むことです。

いくつかの理由で、私は C++ コンソール アプリケーションのみを使用したい (C++ で DLL を作成する方法がわからず、DLL を使用せずに現在の可能性を知りたいという形は別として)

4

3 に答える 3

2

別々のアイテムにする必要がある場合は、IPCを使用できます。

それ以外の場合は、マネージ C++ を調べてください。C++ コードのラッパーを作成して、C# から直接呼び出すことができます。ここに1つのチュートリアルがあります...

于 2012-08-24T13:55:46.023 に答える
1

もちろん、DLL を使用するのも良い方法です。また、C++ でコマンド ライン プログラムを作成し、C# で呼び出すこともできます。複雑なデータを返したい場合は、通信プロトコルを実装する必要があります。

もう 1 つの方法は、別のスレッドでデータを処理している間、入力を開いたままにしておくコンソール アプリケーションを使用することです。この方法では、(コンソールを開いた場合と同様に) 通信ストリーミング データを処理できます。もちろん、出力を解析する必要があります。

于 2012-08-24T13:53:13.097 に答える
0

2つのタスク間の通信を実現する方法はいくつかあります(ただし、それらは異なるプログラミング言語で開発されています;-))。

簡単な方法の1つは、各アプリケーションにクライアント/サーバークラスを実装することです。これにより、タスク間で複雑なデータを双方向に送信し、タスク間で通信させることができます。

于 2012-08-24T13:57:24.170 に答える