資源洩漏的悲劇

2022-01-29 22:52:33 字數 513 閱讀 6049

最近在仿qq2009登入介面,

出現了資源洩漏.

平時寫慣了.net程式,很少會注意到這點.

介面的每次重新訊息gdi引用計數直線上公升,  gdi物件 沒有釋放 記憶體也直線上公升,就造成了資源洩漏.

找了半天是 畫刷控制代碼沒有釋放.

::deleteobject(hbrush);

::deleteobject(holdbrush);

想起了這些詞彙

「resource acquisition is initialization」:「資源獲取即初始化」 raii  rtti 執行時的型別發現, 物件資源管理器

優化後,gdi物件固定了.

記錄 一下,

接著寫完其它控制項.

資源管理 防止資源洩漏

在傳統的資源管理中,我們常用的技術是 在建構函式中申請資源,在析構函式中釋放資源。但是這有個缺點,就是當在建構函式中申請資源時,如果發生資源申請異常,就會導致建構函式失敗 這樣一來,當構造的物件離開作用域時,析構函式不會呼叫,原因是 如果建構函式不能正常完成時,析構函式就不會做相應的呼叫。這樣一來,...

C 中如何避免資源洩漏

請看下面一段 如果在執行delete這行 之前該片段產生異常,程式會在發生異常點停止並產生棧展開,所以不會執行delete語句,造成資源洩漏。解決的方法如下 用智慧型指標替代普通指標,當發生異常並進行棧展開過程時,程式會析構已經構造完畢的類,從而避免了資源洩漏。上面運用的是共享指標,但可以根據實際需...

悲劇的文字

題目描述 你有乙個破損的鍵盤。鍵盤上所有的鍵都能正常工作,但有時home鍵或者end鍵會自動按下 注意 按下home鍵游標會跳到一行的開頭,按下end鍵,游標會跳到一行的結尾。你並不知道鍵盤存在這一問題,而是專心地打稿子,甚至連螢幕都沒有開啟。當你開啟顯示器之後,展現在你面前的是一段悲劇的文字。你的...