<menu id="w8yyk"><menu id="w8yyk"></menu></menu>
  • <dd id="w8yyk"><nav id="w8yyk"></nav></dd>
    <menu id="w8yyk"></menu>
    <menu id="w8yyk"><code id="w8yyk"></code></menu>
    <menu id="w8yyk"></menu>
    <xmp id="w8yyk">
    <xmp id="w8yyk"><nav id="w8yyk"></nav>
  • 網站首頁 > 物聯資訊 > 技術分享

    對開發中常見的內存泄露,GDI泄露進行檢測

    2016-09-28 00:00:00 廣州睿豐德信息科技有限公司 閱讀
    睿豐德科技 專注RFID識別技術和條碼識別技術與管理軟件的集成項目。質量追溯系統、MES系統、金蝶與條碼系統對接、用友與條碼系統對接

     

    對開發中常見的內存泄露,GDI泄露進行檢測

    一、GDI泄露檢測方法:

    在軟件測試階段,可以通過procexp.exe 工具,或是通過任務管理器中選擇GDI對象來查看軟件GDI的對象是使用情況。

    注意點:Create出來的GDI對象,都要用DeleteObject來釋放;Create出來的DC,都要用DeleteDC來釋放,GetDC得出的DC,要用ReleaseDC來釋放。

     

    以下是一些常用到的函數:

     

    1、  檢查GetWindowDC(), 后面是否有ReleaseDC();

    2、  檢測GetDC();后面是否有ReleaseDC();

     

    3、  檢測畫刷CBrush:

    CreateSolidBrush()-》 DeleteObject();

     

    4、  檢測畫筆 CPen

    CreatePen()->DeleteObject();

     

    5、  檢測創建字體CFont

    CreateFont->DeleteObject();

    CreatePointFont()->DeleteObject();

     

    6、  檢測 創建WIN32窗口

    HWND hwnd = ::CreateWindow ()  ->  DestroyWindow(hwnd);

     

    7、  CBitmapbmp;
    bmp.CreateCompatibleBitmap(&dc, rcClient.Width(), rcClient.Height());

     后面要有bmp.DeleteObject();

     

    8、  CFont *pOldFont =pDC->SelectObject(&m_font);

    是否有pDC->SelectObject(pOldFont);

     

    9、  CRgn

    CreateRoundRectRgn() ->  DeleteObject();

     

    10、Graphics gc(pDC)   -> gc.ReleaseDC(pDC);

     

    11、CDialog對話框  Create() 出來的,需要有  DestroyWindow();

     

    12、凡是通過函數得到句柄的都需要用CloseHandle(句柄)來釋放;

    如:HANDLE, HBRUSH ,HPEN

     HANDLE hFile = CreateFile();  -> CloseHandle(hFile);

     

     

    二、內存的檢測方法:

    通過任務管理器中的“內存”列表,或是procexp.exe來觀察是否出現內存泄露

    1、檢查下列函數是否有一一對應:

          new   -> delete;

         Malloc -> free;

         GlobalAlloc  -> GlobalFree

     

     

    2、通過調試器和CRT調試堆來檢測泄露

    把這個語句放到軟件的結束部分_CrtDumpMemoryLeaks(); 在調試下運行程序時,如果有泄漏,就會在輸出窗口顯示內存泄露信息。

     

    3、借助內存泄露檢測工具如:BChecker6.01 這個是適合VC6的,有時間可以去下來使用。

     

    RFID管理系統集成商 RFID中間件 條碼系統中間層 物聯網軟件集成
    最近免费观看高清韩国日本大全