• <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 楊粼波 閱讀(1603) 評論(0)  編輯 收藏 引用

            久久亚洲综合色一区二区三区| 2020久久精品亚洲热综合一本| 麻豆一区二区99久久久久| 热re99久久6国产精品免费| 国内高清久久久久久| 久久夜色tv网站| 久久人人添人人爽添人人片牛牛| 久久国产免费观看精品3| 一级做a爰片久久毛片16| 久久婷婷国产剧情内射白浆| 国产精品无码久久综合| 日日狠狠久久偷偷色综合免费 | 精品久久久久久久久久中文字幕 | 久久精品国产网红主播| 久久精品国产亚洲Aⅴ香蕉| 亚洲精品国产美女久久久| 国产午夜福利精品久久| 久久久久人妻一区精品色 | 国产精品丝袜久久久久久不卡| 免费精品国产日韩热久久| 国产精品狼人久久久久影院| 久久精品九九亚洲精品| 狠狠色丁香久久婷婷综合| 久久久久久亚洲精品无码| 久久亚洲国产午夜精品理论片 | 国产精品欧美久久久久天天影视| 婷婷综合久久中文字幕蜜桃三电影| 欧美与黑人午夜性猛交久久久| 国产精品99久久不卡| 久久精品一区二区| 国产精品一久久香蕉国产线看观看| 久久久久久久久久久久久久| 偷偷做久久久久网站| 蜜桃麻豆WWW久久囤产精品| 久久亚洲日韩看片无码| 亚洲精品99久久久久中文字幕| 亚洲国产成人久久综合区| 日韩中文久久| 亚洲人成网亚洲欧洲无码久久 | 狠狠色综合久久久久尤物| 麻豆精品久久精品色综合|