Win32 API资源分配释放速查

Win32 API资源分配释放速查
Win32 API资源分配释放速查

Win32 API资源分配释放速查

2010-11-15 10:01:42

转自:https://www.360docs.net/doc/9011220562.html,/mugua/archive/2010/01/07/1641191.html

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

文档对防止资源泄露有很大帮助。

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

====================================================================== Accelerators LoadAccelerators N/A No

Atoms GlobalAddAtom GlobalFreeAtom Y es

Bitmaps CreateBitmap DeleteObject Y es *

CreateBitmapIndirect DeleteObject Y es *

CreateCompatibleBitmap DeleteObject Y es *

CreateDIBitmap DeleteObject Y es *

CreateDiscardableBitmap DeleteObject Y es *

LoadBitmap DeleteObject Y es *

Brushes CreateBrushIndirect DeleteObject Y es

CreateDIBPatternBrush DeleteObject Y es

CreateHatchBrush DeleteObject Y es

CreatePatternBrush DeleteObject Y es

CreateSolidBrush DeleteObject Y es

Carets CreateCaret DestroyCaret No #

Clipboard OpenClipboard CloseClipboard Y es

Comms Ports OpenComm CloseComm Y es

Cursor CreateCursor DestroyCursor Y es

LoadCursor N/A No

DC CreateDC DeleteDC Y es

CreateCompatibleDC DeleteDC Y es @

GetDC ReleaseDC Y es

GetWindowDC ReleaseDC Y es

BeginPaint EndPaint Y es

Dialog Box CreateDialog DestroyWindow No

CreateDialogIndirect DestroyWindow No

CreateDialogIndirectParam DestroyWindow No

CreateDialogParam DestroyWindow No

File OpenFile _lclose No

Fonts CreateFont DeleteObject Y es

CreateFontIndirect DeleteObject Y es

AddFontResource RemoveFontResource Y es

GDI Stock Obj GetStockObject N/A No & Hook SetWindowsHook UnhookWindowsHook Y es IC CreateIC DeleteDC Y es

Icon CreateIcon DestroyIcon Y es

LoadIcon N/A No Library LoadLibrary FreeLibrary Y es

Memory AllocDStoCSAlias FreeSelector Y es

AllocSelector FreeSelector Y es

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 Y es

Palette CreatePalette DeleteObject Y es

Pen CreatePen DeleteObject Y es

CreatePenIndirect DeleteObject Y es

Regions CreateEllipticRgn DeleteObject Y es

CreateEllipticRgnIndirect DeleteObject Y es

CreatePolygonRgn DeleteObject Y es

CreatePolyPolygonRgn DeleteObject Y es

CreateRectRgn DeleteObject Y es

CreateRectRgnIndirect DeleteObject Y es

CreateRoundRectRgn DeleteObject Y es

Resource AllocResource FreeResource No

FindResource N/A No

LoadResource FreeResource No

LockResource UnlockResource No

Sound OpenSound CloseSound Y es

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

相关主题
相关文档
最新文档