DLLのメモリ領域 – プログラミング – Home

通知
すべてクリア

DLLのメモリ領域


あきら
 あきら
(@あきら)
ゲスト
結合: 23年前
投稿: 49
Topic starter  

ちょっと素人な質問かもしれませんが教えてください。

一つのアプリがあるDLLを使ってDLL内のグローバル領域に何かしら
データをセットします。
このときセットしたグローバル領域のデータには
別のアプリから同じDLLを使ってアクセスできないのでしょうか。

簡単にかくと
①アプリ----→DLL
②アプリ----→同じDLL
①と②ではDLL内のデータを共有できない??


引用解決済
トピックタグ
aaa
 aaa
(@aaa)
ゲスト
結合: 22年前
投稿: 10
 

無理じゃない。
データ共有したかったら、メモリマップドファイルとか使ったら。


返信引用
aaa
 aaa
(@aaa)
ゲスト
結合: 22年前
投稿: 10
 

ちょっと誤解をまねくので修正。
無理じゃない → 無理です。


返信引用
たみあ
 たみあ
(@たみあ)
ゲスト
結合: 22年前
投稿: 57
 

#pragma comment( linker, /SECTION:.shared,RWS )
#pragma data_seg( .shared )
// ...共有したい変数、必ず初期化すること
extern int iShared = 0;
#pragma data_seg()

こんな感じでできます


返信引用
渋木宏明(ひどり)
 渋木宏明(ひどり)
(@渋木宏明(ひどり))
ゲスト
結合: 23年前
投稿: 196
 

# インターネットで丸付き数字を使わないでください。

>このときセットしたグローバル領域のデータには
>別のアプリから同じDLLを使ってアクセスできないのでしょうか。

デフォルトではできません。

既にコメントがついているように、共有したい変数を「共有セクション」に配置するよ
うに、リンカに指示する必要があります。


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました