プロセス間での共有クラスのインスタンスのメソッド
質問
私は、少なくとも2つのWindowsプロセス間のインスタンスを共有する必要があるC ++クラスを書かれています。これを行うためのさまざまな方法を教えてください。
当初、私はの#pragma data_seg だけ失望することにする。
既存の、完全なアプリケーションは既にこのDLLを使用しているため、クラスのインスタンスは、DLL経由でアクセス可能である必要があります。
他のヒント
に見てブースト::プロセス間に。それに慣れるには少し時間がかかるが、それは非常によく動作します。私は、プロセス間でうまく働いた共有メモリに比較的複雑なデータ構造を作りました。
編集:それはあまりにもメモリマップドファイルで動作します。ポイントは、あなたが構造化された方法でデータを使用することができますです。あなたは慎重に有効な状態で残すように読み取り/書き込みする必要があり、単に生データとして(ファイルまたは共有メモリ内の)メモリ・ブロックを処理する必要はありません。ブースト::プロセス間は、その部分の世話をし、あなたがなどの木、リスト、などのSTLコンテナを使用することができます。
あなたは、共有メモリ領域にオブジェクトを作成するために、新しい配置を使用することができます。限り、オブジェクトが任意のポインタを使用していないとして、それは大丈夫souldます。
これは、PODされていますし、プロセス間で単一のインスタンスを共有できるようにする必要がありますか?あなたは、(スレッドの安全上の理由から静的初期バージョン、)シングルトンパターンを使用して考えがありますか?あなたは、同時書き込みやものを保護するだけでなくミューテックスを使用する必要があります。
Windowsでは、あなたにも、COMを使用することができます。
所属していません StackOverflow