Win32 API资源分配释放速查

下面为某次浏览找到的Win32资源的分配清除文档,只简单的翻译了几个文字。该 文档对防止资源泄露有很大帮助。 ================================================================================ 资源            分配函数                      清除函数             需要手动清除? ================================================================================

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(系统内定资源) ================================================================================

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值