VC资源分配、释放表 @ 3/2/2015

学习类
资源          分配函数                    清除函数          需要手动清除?
===========================================================================
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
              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(系统内定资源)。
发布于 3/2/2015 7:04:22 | 评论:0

看帖要回帖...

categories
archives
links
statistics
  • 网志数:1137
  • 评论数:2010