ITPub博客

首页 > 应用开发 > IT综合 > Win32 API资源分配释放速查,防止代码资源泄露 (转)

Win32 API资源分配释放速查,防止代码资源泄露 (转)

原创 IT综合 作者:worldblog 时间:2007-12-03 13:26:35 0 删除 编辑
Win32 API资源分配释放速查,防止代码资源泄露 (转)[@more@] 

下面为某次浏览找到的win32资源的分配清除文档,只简单的翻译了几个文字。该

文档对防止资源泄露有很大帮助。抱歉一贴上就串了。

***********************************************************************

资源    分配函数    清除函数    需要手动清除?

======================================================================

 XML:namespace prefix = o ns = "urn:schemas-microsoft-com:Office:office" />

Accelerators    LoadAccelerators     N/A  No

 

Atoms      GlobalAddAtom      GlobalFreeAtom  Yes

 

Bitmaps    CreateBitmap      Deleteobject     Yes *

  CreateBitmapindirect      DeleteObject     Yes *

   CreateCompatibleBitmap    DeleteObject      Yes *

  CreateDIBitmap    DeleteObject   Yes *

  CreateDiscardableBitmap      DeleteObject    Yes *

  Loadbitmap    DeleteObject    Yes *

 

Brushes  CreateBrushIndirect      DeleteObject  Yes

  CreateDIBPatternBrush    DeleteObject  Yes

  CreateHatchBrush    DeleteObject  Yes

  CreatePatternBrush      DeleteObject  Yes

  CreateSolidBrush    DeleteObject  Yes

 

Carets    CreateCaret    DestroyCaret  No  #

 

Clipboard    OpenClipboard    CloseClipboard  Yes

 

Comms Ports  OpenComm  CloseComm  Yes

 

Cursor    CreateCursor    DestroyCursor     Yes

  LoadCursor    N/A  No

 

DC  CreateDC    DeleteDC  Yes

  CreateCompatibleDC    DeleteDC  Yes @

  GetDC    ReleaseDC  Yes

  GetWindowDC    ReleaseDC  Yes

  BeginPaint    EndPaint  Yes

 

Dialog Box    CreateDialog    DestroyWindow  No

  CreateDialogIndirect      DestroyWindow  No

  CreateDialogIndirectParam     DestroyWindow  No

  CreateDialogParam    DestroyWindow  No

 

File    OpenFile    _lclose    No

 

Fonts    CreateFont    DeleteObject  Yes

  CreateFontIndirect      DeleteObject    Yes

   AddFontResource    RemoveFontResource    Yes

 

GDI Stock Obj    GetStockObject    N/A  No  &

 

Hook    SetwindowsHook    UnhookWindowsHook  Yes

 

IC  CreateIC    DeleteDC   Yes

 

Icon  CreateIcon    DestroyIcon  Yes

  LoadIcon    N/A  No

 

Library    LoadLibrary    FreeLibrary  Yes

 

Memory  AllocDStoCSAlias    Freeselector  Yes

  AllocSelector      FreeSelector  Yes

  GlobalAlloc    GlobalFree  No

  GlobalDOSAlloc    GlobalDOsfr  No

  GlobalFix    GlobalUnfix  No

  GlobalLock    GlobalUnlock  No

  GlobalPageLock    GlobalPageUnlock  No

  GlobalRealloc    GlobalFree  No

   GlobalWire    GlobalUnwire  No

  LocalAlloc    LocalFree  No

  LocalLock    LocalUnlock  No

  LocalRealloc    LocalFree  No

 

Menu  CreateMenu    DestroyMenu  No  %

  CreatePopupMenu    DestroyMenu  No  %

  LoadMenu    DestroyMenu  No  %

  LoadMenuIndirect    DestroyMenu  No  %

  GetSystemMenu    N/A  No

 

MetaFile    CreateMetaFile    DeleteMetaFile  Yes

 

Palette    CreatePalette      DeleteObject  Yes

 

Pen  CreatePen    DeleteObject  Yes

  CreatePenIndirect      DeleteObject  Yes

 

Regions  CreateEllipticRgn      DeleteObject  Yes

  CreateEllipticRgnIndirect     DeleteObject  Yes

  CreatePolygonRgn    DeleteObject  Yes

  CreatePolyPolygonRgn    DeleteObject  Yes

  CreateRectRgn    DeleteObject  Yes

  CreateRectRgnIndirect      DeleteObject  Yes

  CreateRoundRectRgn    DeleteObject  Yes

 

Resource    AllocResource    FreeResource  No

  FindResource    N/A  No

  LoadResource    FreeResource  No

  LockResource    UnlockResource  No

 

Sound    OpenSound    CloseSound  Yes

 

String    LoadString    N/A  No

 

Thunk    MakeProcInstance    FreeProcInstance  No

 

Timer  SetTimer    KillTimer  No

 

Window  CreateWindow    DestroyWindow  No

  CreateWindowEx    DestroyWindow  No

 

 

Notes:

------

*  位图资源在释放的时候必须从选中它的DC中脱离。

%  当菜单失去焦点和窗口不再关联或者应用程序结束的时候占用资源必须被释放。

@  DC被释放前必须和它关联(选中)的位图取消联系

#  如果脱字符指定了位图,位图必须被释放

&  对DeleteObject的调用不会销毁常规的StockObject(系统内定资源)


来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/10752043/viewspace-987688/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
  • 博文量
    6241
  • 访问量
    2410112