• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            牽著老婆滿街逛

            嚴以律己,寬以待人. 三思而后行.
            GMail/GTalk: yanglinbo#google.com;
            MSN/Email: tx7do#yahoo.com.cn;
            QQ: 3 0 3 3 9 6 9 2 0 .

            利用任務管理器偵測GDI內存泄露

            轉載自:http://zhanyonhu.blog.163.com/blog/static/1618604420100232033650/


                    打開任務管理器,點擊菜單“查看”——“選擇列”,勾上所有項,“確定”。運行自己的程序,進行各種操作,并查看任務管理器中GDI對象和句柄數的變化。

                    如果在某次可逆操作中,例如,彈出一個對話框,然后關閉,GDI對象或句柄數先增加了,然后減少了,但是總量還是增加了,說明存在內存泄露,GDI對象沒有被及時回收。如果句柄數出現類似情況,則情況復雜很多。

                    接下來,注釋掉某些代碼,編譯運行并繼續觀察,逐步定位導致內存泄露的代碼段。

             

                    實例:

                    某程序運行時,彈出一個窗口,再關閉,GDI對象數目就增加了一個。經過一個多小時的分析,最后定位出問題所在,如下:

             LOGFONT logfont={0};

             GetObject(m_font, 
            sizeof(logfont), &logfont);

             logfont.lfHeight 
            = -MulDiv(size, GetDeviceCaps(::GetDC(NULL), LOGPIXELSY), 72);

             SetFont(
            &logfont);

                    這段代碼是用來改變窗口的字體大小的,size是字體的磅數,但是LOGFONT是按像素計算字體大小的,所以,需要轉換字體的磅數為像素大小。這里只轉換了高度,因為設置字體大小時,只需要高度就可以了。 logfont.lfHeight = -MulDiv(size, GetDeviceCaps(::GetDC(NULL), LOGPIXELSY), 72);  這句代碼是從網上搜索到的、轉換字體磅數為像素大小的代碼,我也沒有去細看,直接copy了一下,畢竟代碼很短,乍一看,真沒什么問題。然而,這里使用了GetDC,這將導致GDI對象增加,所以,應該調用DeleteDC回收,這就是問題所在。

            修改后的代碼為:


             LOGFONT logfont={0};

             GetObject(m_font, 
            sizeof(logfont), &logfont);

             HDC hdc
            =::GetDC(NULL);

             ASSERT(hdc
            !=NULL);

             logfont.lfHeight 
            = -MulDiv(size, GetDeviceCaps(hdc, LOGPIXELSY), 72);

             ::DeleteDC(hdc);

             SetFont(
            &logfont);

            By:zhanyonhu

            posted on 2011-03-09 17:26 楊粼波 閱讀(1605) 評論(0)  編輯 收藏 引用

            色婷婷综合久久久久中文| 97久久精品人妻人人搡人人玩| 国内精品久久久久久麻豆| 久久免费精品一区二区| 久久这里有精品视频| 亚洲女久久久噜噜噜熟女| 99久久er这里只有精品18| 香港aa三级久久三级| 精品人妻伦九区久久AAA片69| 久久久91精品国产一区二区三区 | 日韩久久久久中文字幕人妻| 精品国产乱码久久久久久呢| 久久精品国产亚洲网站| 欧美成人免费观看久久| 青青草原综合久久| 久久香蕉超碰97国产精品 | 久久久无码精品亚洲日韩按摩| 久久免费高清视频| 无码人妻久久一区二区三区免费| 国产激情久久久久影院老熟女| 一本一本久久aa综合精品| 久久人人爽人人爽人人片AV东京热| 久久国产精品77777| 色妞色综合久久夜夜| 久久久久99精品成人片| 亚洲国产成人久久综合一| 无码超乳爆乳中文字幕久久| 无码人妻少妇久久中文字幕 | 国产亚洲精品久久久久秋霞| 51久久夜色精品国产| 久久99国产精品久久99| 亚洲女久久久噜噜噜熟女| 亚洲精品高清国产一线久久 | 五月丁香综合激情六月久久| 三级韩国一区久久二区综合| 夜夜亚洲天天久久| 91久久精品无码一区二区毛片| 97r久久精品国产99国产精| 国产三级久久久精品麻豆三级| 少妇高潮惨叫久久久久久| 久久天堂AV综合合色蜜桃网|