[問題] DLL和刪除物件的問題

看板C_and_CPP (C/C++)作者 (追尋著幻影.....)時間13年前 (2012/11/08 06:14), 編輯推噓1(109)
留言10則, 3人參與, 最新討論串1/2 (看更多)
開發平台(Platform): (Ex: VC++, GCC, Linux, ...) VC++ 額外使用到的函數庫(Library Used): (Ex: OpenGL, ...) DLL中,有物件可以用 問題(Question): 被一個問題困擾好幾天了,就是小弟的DLL檔給別人使用要包出ActiveX, 他會NEW好幾個物件(我DLL中的物件) EX:一開始他會NEW一個物件然後開RUN流程,接下來第二個物件也NEW起來,這時他會 來CALL Destroy把物件刪除,但delete會導致整個程式停在那邊但沒有crash,我有在 物件中設TIMER,照理說第二個物件的TIMER會繼續印LOG才對,但並沒有@@,問題來了, 我如果在Destroy把delete物件這行拿掉,就不會產生這問題.....QQ 請問是小弟忽略了啥DLL的特性嗎?還是有可能是上層那邊的問題呢? 謝謝 餵入的資料(Input): DLL提供API給CALL 預期的正確結果(Expected Output): 刪除物件應該要正常運作 而不是停在那邊 錯誤結果(Wrong Output): 如問題 程式碼(Code):(請善用置底文網頁, 記得排版) 補充說明(Supplement): -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.34.243.222

11/08 06:58, , 1F
第一個物件 delete 之前有先把裡面的 timer 停掉嗎?
11/08 06:58, 1F

11/08 08:57, , 2F
我想問,看文章都說dll new 的要用dll的free 去delete
11/08 08:57, 2F

11/08 08:57, , 3F
不然會出事,但不曉得為什麼
11/08 08:57, 3F

11/08 08:58, , 4F
請教各位
11/08 08:58, 4F

11/08 09:42, , 5F
linotwo大 沒有把TIMER停掉耶 但看起來另一個物件又沒死QQ
11/08 09:42, 5F

11/08 10:09, , 6F
如果沒有停掉的話 timer thread 可能會掛掉。
11/08 10:09, 6F

11/08 10:10, , 7F
即使第二個物件沒事,timer 也不能動,因為它在存取第一的
11/08 10:10, 7F

11/08 10:11, , 8F
時候物件已經被刪除,所以會卡住。
11/08 10:11, 8F

11/08 13:37, , 9F
補充一下 DLL物件有繼承 CDialog, 卡住除了timer之外,其他事
11/08 13:37, 9F

11/08 13:38, , 10F
件也都完全沒有繼續的跡象>"<
11/08 13:38, 10F
文章代碼(AID): #1Gcjq_Yz (C_and_CPP)
討論串 (同標題文章)
文章代碼(AID): #1Gcjq_Yz (C_and_CPP)