通知
すべてクリア
Topic starter
2003年6月29日 8:02 PM
ちょっと素人な質問かもしれませんが教えてください。
一つのアプリがあるDLLを使ってDLL内のグローバル領域に何かしら
データをセットします。
このときセットしたグローバル領域のデータには
別のアプリから同じDLLを使ってアクセスできないのでしょうか。
簡単にかくと
①アプリ----→DLL
②アプリ----→同じDLL
①と②ではDLL内のデータを共有できない??
2003年6月30日 2:05 AM
無理じゃない。
データ共有したかったら、メモリマップドファイルとか使ったら。
2003年6月30日 2:06 AM
ちょっと誤解をまねくので修正。
無理じゃない → 無理です。
2003年6月30日 3:09 AM
#pragma comment( linker, /SECTION:.shared,RWS )
#pragma data_seg( .shared )
// ...共有したい変数、必ず初期化すること
extern int iShared = 0;
#pragma data_seg()
こんな感じでできます
2003年6月30日 10:25 AM
# インターネットで丸付き数字を使わないでください。
>このときセットしたグローバル領域のデータには
>別のアプリから同じDLLを使ってアクセスできないのでしょうか。
デフォルトではできません。
既にコメントがついているように、共有したい変数を「共有セクション」に配置するよ
うに、リンカに指示する必要があります。