dll間での変数の共有

解決


kokopelli  2007-07-23 11:49:53  No: 65813  IP: [192.*.*.*]

1つのプロセスa.exeから、まず、x.dllの関数を実行し、その関数が終了すると、a.exeから、y.dllの関数を実行し、さらにその関数から、z.dllの関数を呼び出します。
a.exe--+-->x.dll
       |
       +-->y.dll-->z.dll
のような関係です。
このとき、x.dllの関数とz.dllの関数でグローバル変数を使って変数を共有することはできるのでしょうか?
現在、x.dllとz.dllの開発を請け負っていますが、a.exe、y.dllは別の人が担当なのでx.dllとz.dllの間でデータを共有したいのです。

編集 削除
lemon  2007-07-24 11:44:22  No: 65814  IP: [192.*.*.*]

こんにちは

素人に毛が生えた程度の者で恐縮ですが
共有メモリを使う手があると思います。
「共有メモリ」で検索すればネット上にたくさんの有用な
情報があります。
頑張って下さい。

編集 削除
とおり  2007-07-24 21:02:16  No: 65815  IP: [192.*.*.*]

もういいでしょ、解決で。

編集 削除
YuO  2007-07-25 09:33:45  No: 65816  IP: [192.*.*.*]

DLLから変数をエクスポートする事は可能です。
やり方は関数とほとんど一緒です。
http://support.microsoft.com/kb/90530/ja

あとは,x.dllとz.dllのうち,エクスポートする方をインポートする方が参照するようにしてやればよいです。


ただ,そもそもグローバル変数を共有するようなものを分割するのが間違い,という気がしますけどね……。

編集 削除
kokopelli  2007-07-27 16:25:28  No: 65817  IP: [192.*.*.*]

いろいろ、ありがとうございました。

編集 削除