• ベストアンサー

DLLで同じメモリ領域を参照するには?

現在、DLLを作成しています。 ある実行ファイル(exe)から呼び出された時に、 DLLでメモリを確保し、データを保持します。 また、別の実行ファイル(exe)から呼び出された時に、 最初に保持したデータの内容を返したいのですが、 どこにどういう定義でメモリを確保すれば 同じ領域が参照できますか? 現時点の状態では、別タスクであるため、最初に確保した メモリのアドレスすら持って来れません。 申し訳ありませんが、教えてください。 よろしくお願いいたします。

質問者が選んだベストアンサー

  • ベストアンサー
  • a-kuma
  • ベストアンサー率50% (1122/2211)
回答No.1

基本的に、そういうことはプロセス間通信なので、メッセージやメモリマップとファイルを使うのがスジです。 仮想メモリって分かってますか? が、Microsoft の場合には、お手軽なやり方として、shared セクションにデータを置く手があります。 http://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/vccore/html/_core_how_do_i_share_data_in_my_dll_with_an_application_or_with_other_dlls.3f.asp

参考URL:
http://techtips.belution.com/ja/vc/0023/,http://www.h4.dion.ne.jp/~fht/htmkdll/
fruipa
質問者

お礼

ご説明ありがとうございます。 参照先もたくさん教えて頂き、ありがとうございました。 参考にして色々試してみます。 (仮想メモリのことも) 私も今まではそういうことをしたい場合は、 プロセス間通信でしかやったことがなく、 DLLも単純なものしか作成したことがなかったので、 関数の入り口だけのDLLをポンと渡されて、 試行錯誤しています。 本当に助かりました。

関連するQ&A