0

ある種の勝利ライブラリを使用しているJavaでプログラムを作成しましたが、もう1つのプログラムを作成して他のプログラムをシミュレートしたいと考えています。つまり、次のようになるはずです:

  • lib にいくつかの単純なデータを要求する最初のプログラム ( true false のみ)
  • このlibの関数を使用して、このlibのいくつかの変数を設定することにより、同時に他のプログラムを実行します。これは、最初のプログラムに戻る可能性があります...
  • 両方のプログラムは、Javaでは最初に(「ゲッター」としましょう)、C ++では2番目(「セッター」)に独立しています...私はすでにlibのすべての変数を静的として設定しましたが、問題は解決しませんでした。

この種の解決策は可能ですか?または、おそらくある種のソケットなどを使用する必要があります

リプレイありがとう

4

1 に答える 1

0

私はこの種のもの(Java + dll +別のプログラム)を扱ってきましたが、別のプログラムから実行されたライブラリとJavaは静的変数を共有していないことがわかります。その通りです。

私が持っている例では、サイズが 0 のウィンドウを使用して 2 つのプログラム (Java と VB 6.0) 間でメッセージを交換します。2 つのプログラム間の最初の呼び出しはウィンドウ ハンドラーを共有しますが、これは最善の方法ではないと思います。さらに、いくつかの制限があります。

あなたの問題に一致すると思われる方法を公開します。

  • 共有ファイル: 非常に簡単ですが、エンコーディングに注意する必要があります。
  • メモリ領域: dll でデータ交換用のメモリ領域を使用できます。これは真に「静的な」コンテキストです。
  • ソケット: あらゆるプログラム/システムで動作するため、おそらく最も柔軟です。

最後のものは、そのようなものを実装する必要がある場合に使用するものですが、それはあなた次第です.

于 2012-05-29T14:38:35.397 に答える