[轉][VC/MFC]VC資源分配、釋放表

資源                            分配函數                            清除函數                     需要手動清除?

  ======================================================================
  

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 #
<!--[if !supportLineBreakNewLine]-->
<!--[endif]-->

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

  

*     位圖資源在釋放的時候必須從選中它的DC中脫離。
%    
當菜單失去焦點和窗口不再關聯或者應用程序結束的時候佔用資源必須被釋放。
@    DC
被釋放前必須和它關聯(選中)的位圖取消聯繫
#     
如果脫字符指定了位圖,位圖必須被釋放
&    
DeleteObject的調用不會銷燬常規的StockObject(系統內定資源)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章