• <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)  編輯 收藏 引用

            久久久久久毛片免费看 | 久久人人爽人人人人爽AV| 亚洲伊人久久综合影院| 国产情侣久久久久aⅴ免费| 久久精品成人免费看| 久久中文字幕人妻丝袜| 99久久免费只有精品国产| 久久99亚洲网美利坚合众国| 97久久精品无码一区二区天美| 精品熟女少妇AV免费久久| 久久男人Av资源网站无码软件| 伊人久久大香线蕉无码麻豆| 久久夜色精品国产欧美乱| 久久久久亚洲av成人网人人软件 | 久久精品aⅴ无码中文字字幕不卡| 久久人人爽人人爽人人片av高请| 国产成人久久久精品二区三区| 色综合久久久久久久久五月| 2021国内精品久久久久久影院| 国产成人久久精品激情| 中文字幕亚洲综合久久菠萝蜜| 久久久久中文字幕| 精品国产热久久久福利| 国内精品久久久久久久涩爱| 精品国产青草久久久久福利| 久久99精品久久久久久噜噜| 2021少妇久久久久久久久久| 免费精品久久天干天干| 久久精品亚洲乱码伦伦中文| 久久精品国产免费| 国产精品久久成人影院| 久久精品亚洲精品国产色婷| 亚洲精品无码久久久久sm| 久久精品中文字幕大胸| 久久夜色精品国产亚洲| 欧美午夜A∨大片久久 | 色欲av伊人久久大香线蕉影院| 欧美成a人片免费看久久| 一本久道久久综合狠狠躁AV| 国产精品熟女福利久久AV| 国产激情久久久久影院老熟女免费|