討論串[問題] DLL問題
共 10 篇文章
首頁
上一頁
1
2
下一頁
尾頁

推噓2(2推 0噓 3→)留言5則,0人參與, 最新作者photon3108 (John)時間15年前 (2009/04/10 18:47), 編輯資訊
2
0
1
內容預覽:
為什麼 "DLL 內 new/malloc 的東西, 只能從 DLL 中去 delete/free."?. 我試了一下在 DLL 中 malloc,在使用 DLL 的程式中,得到這個 memory. block ,再 free,好像沒有問題,會潛在什麼問題嗎?. 文中提到的例外,又是什麼呢?. 謝謝

推噓0(0推 0噓 0→)留言0則,0人參與, 最新作者sunneo (艾斯寇德)時間15年前 (2009/04/11 00:41), 編輯資訊
1
0
0
內容預覽:
我發表一下淺見@@. 有錯請指正. 這可能跟malloc/free版本有關. 假使今天dll使用a版的malloc/free,而外部程式使用b版的. 就可能會因為Heap資訊及處理方式不一致使得這個操作發生錯誤. 所以穩定的做法是以HeapFree來釋放. 假使該配置記憶體的變數是一個全域變數且修飾

推噓0(0推 0噓 0→)留言0則,0人參與, 最新作者littleshan (我要加入劍道社!)時間15年前 (2009/04/11 01:04), 編輯資訊
1
0
0
內容預覽:
但同樣的問題不只會發生在 malloc/free 上. 也會發生在其它 standard C function 上. 只要 DLL 與 client code 連結到不同的 C runtime. 運作起來就很可能發生異常. 所以穩定的作法應該不是用 HeapFree. 而是要求 DLL 與 clie
(還有52個字)

推噓0(0推 0噓 0→)留言0則,0人參與, 最新作者sunneo (艾斯寇德)時間15年前 (2009/04/11 01:39), 編輯資訊
1
0
0
內容預覽:
這裡是指其他的process沒錯. 不過這裡是舉單純是對無效位址free的例子. 假使有一以shared共享的全域變數個指標使用malloc配置記憶體並且作為回傳值. 這時候別的process看到的可能是同一個記憶體位址,因為是一個共享變數的資料. 但該位址在自己的proecss不見得有配置記憶體,
(還有157個字)

推噓0(0推 0噓 0→)留言0則,0人參與, 最新作者tsaiminghan (nahgnimiast)時間15年前 (2009/04/11 09:43), 編輯資訊
0
0
0
內容預覽:
這篇的討論串看不太懂…以前看的都是介. 紹語法的書,如果我想知道不同process共. 用一個dll時記憶體是怎麼分配的,有什麼. 書有在介紹這類的資訊嗎?能不能介紹一. 下,謝謝。. --. 發信站: 批踢踢實業坊(ptt.cc). ◆ From: 218.168.64.32.
首頁
上一頁
1
2
下一頁
尾頁