VC资源分配、释放表

来源:互联网 发布:福建广电网络集团张远 编辑:程序博客网 时间:2024/05/17 01:47

资源

分配函数

清除函数

需要手动清除

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

CommsPorts

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


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

从CGdiObject类派生的类如CFont CBrush,析构时会自动DeleteObject。但是在销毁对象之前,要先把对象从DC中选出(否则DeleteObject会失败)。

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

0 0
原创粉丝点击