Re: [問題] dll和記憶體的關係 觀念請教?

看板C_and_CPP作者 (星空下的鮪魚)時間14年前 (2010/03/05 09:47), 編輯推噓1(106)
留言7則, 4人參與, 最新討論串4/4 (看更多)
繼續問下去好了… ^^" 一般用MFC dll的話,裡面有個theApp的global變數。 對於process A, process B,戴入這個dll,姑且叫做foo.dll好了。 這個theApp對於process A和 B 而言,是同樣一份,還是不同一份。 同樣地,如果用了一個void *g_foo1, TestClass g_foo2宣告全域變數, 那對process A和process B是否也為同一份呢? -- 格局決定了結局 個性決定了命運 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 59.120.59.242

03/05 10:09, , 1F
.text segment會一樣但是.data是各process一份
03/05 10:09, 1F

03/05 10:40, , 2F
補充一下 應該是read only的text會shared,但read-write的
03/05 10:40, 2F

03/05 10:40, , 3F
會變private
03/05 10:40, 3F

03/05 12:52, , 4F
所以global會放在.text segment裡,所以是一樣地!?
03/05 12:52, 4F

03/05 13:07, , 5F
需要的時候會 copy on write 而不共享
03/05 13:07, 5F

03/05 14:59, , 6F
不考慮一些特殊情形 variable算是data 所以是private
03/05 14:59, 6F

03/05 15:00, , 7F
建議還是查資料加上自己trace看看 才會有心得
03/05 15:00, 7F
文章代碼(AID): #1Ba6BB-R (C_and_CPP)
文章代碼(AID): #1Ba6BB-R (C_and_CPP)