try except 的記憶體管理問題 |
答題得分者是:RootKit
|
P.D.
版主 發表:603 回覆:4038 積分:3874 註冊:2006-10-31 發送簡訊給我 |
|
AndrewK
高階會員 發表:6 回覆:151 積分:161 註冊:2006-10-09 發送簡訊給我 |
Hello
1.若於 fom1.close 時發生問題,而第三方控件code,也寫於 close function 的話 改變 TCloseAction 是否能解決問題 ?? 觀看釋放順序,並改變,是否能解決問題呢?? 2.利用 try except 後,不再有當機的情況發生,而發生的錯誤訊息內容為何? 3.於 try except 後,windows 工作管理員的程序有何變化呢? 是否該程式一樣沒釋放? 或多了一些小程序?
------
Just Do It ------------------------- 其實男生不是真的喜歡你不減肥,而是喜歡你愛吃還不肥;也不是真的喜歡你不化妝,而是喜歡你素顏也好看;也不是真的喜歡你瘦,而是喜歡你瘦卻有胸;也不是真喜歡你獨立,而是他忙的時候別煩他。女孩子,太認真你就輸了。 |
P.D.
版主 發表:603 回覆:4038 積分:3874 註冊:2006-10-31 發送簡訊給我 |
這個控件是 TDOSMOVE
1.它不位於CLOSE中, 我是在一支程式兩個FORM(FORM1, FORM2)分別建置了一組DosMove1, DosMove2 Form2是 mailform, Form1 是一般的form, 程式啟動後先run form1, 再呼叫 form2, form2.close , 再form1.close 引發錯誤 2.try...except 不是不再發生當機, 還是有當機, 只是except 不做任何事, 所以感覺沒有當機 DosMove 引發的錯誤(紅色字段是原來的code) try if Assigned(FActiveControlChange) then FActiveControlChange(Sender); except end; 至於引發的錯誤, 我沒有記錄下來, 記得是 Access Error 問題 3.關於第3點沒有深入調查, 但 form1 的 exe 有被釋放, 其他是否有新增小程序, 不知道囉! 我現在用另一個方法做, 似乎就沒有上述的狀況 原本是直接把 vcl 拉下來到 form 上設置, 現在我改用在 form2 直接創建 TDosMove.Create(self)的方式來執行 功能還是可以維持一樣, 在 Form2.close , 我直接下 DosMove2.Destroy! 似乎沒有發生當機(當然我測試是把 TDosMove中的try ... except 拿掉) ===================引 用 AndrewK 文 章=================== Hello 1.若於 fom1.close 時發生問題,而第三方控件code,也寫於 close function 的話 改變 TCloseAction 是否能解決問題 ?? 觀看釋放順序,並改變,是否能解決問題呢?? 2.利用 try except 後,不再有當機的情況發生,而發生的錯誤訊息內容為何? 3.於 try except 後,windows 工作管理員的程序有何變化呢? 是否該程式一樣沒釋放? 或多了一些小程序? |
RootKit
資深會員 發表:16 回覆:358 積分:419 註冊:2008-01-02 發送簡訊給我 |
|
P.D.
版主 發表:603 回覆:4038 積分:3874 註冊:2006-10-31 發送簡訊給我 |
謝謝指教, 目前我上述的做法, 我特別檢查記憶體的釋放上, 似乎查覺不到有異樣, 因為 dosmove 之前使用在兩個form上(用vcl放上來的方式), 常會造成兩個form 上的 dosmove 互相干擾, 所以改用 create 方式來創建, 在 form 消滅時, 看來是會被乾淨的摧毀(destory)而不會有後遺症, 暫時先結案了!
===================引 用 RootKit 文 章=================== raise 所引發的例外錯誤,是不是記憶體會釋放。 要看程式碼的寫法,若有 Try..finally 當然不會有問題,若沒有建立後又引發錯誤中斷跳出就會導致物件沒有正確釋放。 通常如果在 Assigned 發生錯誤,可能是該指向物件的指針還在但物件卻已經不存在,就導致 Access Vilation 看一下就你的 Try.. Except 內容是不會引起記憶體洩漏,是很正常的作法。 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |