0

dll を呼び出す 2 つのプログラムがあります。情報をやり取りするために使用できるように、両方がdllの同じインスタンスを呼び出すようにしたいと考えています。

同じインスタンスを正しくピンボークして、両方のプログラムが同じ dll と通信し、dll をリバース ピンボークとコールバックの中間として使用して情報をやり取りできるようにするにはどうすればよいですか。

ピンボークはこれを行う方法ではありませんか? より良い方法はありますか?

4

2 に答える 2

2

これは「DLL の共有セクション」と呼ばれ、その DLL をロードするすべてのプロセス間で何らかの方法でデータを共有できるようになります。

コードが異なるプロセスで実行されているため、コールバックを共有することはできません。そのためには、ある種の IPC (プロセス間通信) メカニズムが必要です。

全体として、アプリケーション間でデータを共有するのは珍しいアプローチであるため、これを行うことはお勧めしません。それを行う方法のヘルプやサンプルが見つかる可能性は低く、自分で適切に行うには、本 (Windows Internals、とにかく読むと便利です) を読む必要があります。

于 2012-10-02T17:17:19.417 に答える
0

WCF でプロセス間通信を使用する

DLL は共有データではなく、共有コードに使用されます。

于 2012-10-02T19:26:39.700 に答える