您的位置:首页 > 其它

VC资源分配、释放表

2013-12-17 16:12 190 查看
资源
分配函数
清除函数
需要手动清除
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
DialogBox
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
GDIStockObj
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
Load Resource
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
从CGdiObject类派生的类如CFont CBrush,析构时会自动DeleteObject。但是在销毁对象之前,要先把对象从DC中选出(否则DeleteObject会失败)。

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

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

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

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

& 对DeleteObject的调用不会销毁常规的StockObject(系统内定资源)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: