【VC】关于VC中资源释放表,让你更清晰的了解和使用。

资源

分配函数

清除函数

需要手动清除

ccelerators

LoadAccelerators

N/A

No

toms

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

  

* 位图资源在释放的时候必须从选中它的DC中脱离。
% 当菜单失去焦点和窗口不再关联或者应用程序结束的时候占用资源必须被释放。
@ DC被释放前必须和它关联(选中)的位图取消联系
# 如果脱字符指定了位图,位图必须被释放
& 对DeleteObject的调用不会销毁常规的StockObject(系统内定资源)

 

你可能感兴趣的:(VC++)