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

            久久这里有精品| 久久亚洲高清综合| 久久久无码人妻精品无码| 亚洲乱码中文字幕久久孕妇黑人 | 久久99国产综合精品| 成人国内精品久久久久一区| 日韩欧美亚洲综合久久影院d3| 国产精品嫩草影院久久| 久久久久精品国产亚洲AV无码| 久久精品蜜芽亚洲国产AV| 丁香五月综合久久激情| 久久国产劲爆AV内射—百度| 久久―日本道色综合久久| 人妻无码精品久久亚瑟影视| 久久精品www人人爽人人| 久久免费香蕉视频| 久久er国产精品免费观看2| 99精品国产免费久久久久久下载| 久久福利青草精品资源站免费| 欧美久久久久久午夜精品| 7777久久亚洲中文字幕| 伊人久久成人成综合网222| 欧美亚洲国产精品久久蜜芽 | 亚洲精品乱码久久久久久久久久久久 | 中文国产成人精品久久亚洲精品AⅤ无码精品| 免费精品久久天干天干| 国产午夜电影久久| 久久久久久无码Av成人影院| 国产精品久久久久久五月尺| 久久99精品久久久久久不卡| 99久久免费国产精品热| 新狼窝色AV性久久久久久| 久久久久人妻精品一区三寸蜜桃| 久久国产免费观看精品3| 久久精品一区二区三区AV| 久久天天躁狠狠躁夜夜不卡| 久久99精品国产麻豆蜜芽| 精品久久久久中文字| 久久精品免费大片国产大片| 久久久久国产精品| 99热精品久久只有精品|