Win32 API资源分配释放速查

转载 2007年09月23日 21:19:00

                      

  下面为某次浏览找到的Win32资源的分配清除文档,只简单的翻译了几个文字。该
文档对防止资源泄露有很大帮助。
================================================================================
资源            分配函数                      清除函数             需要手动清除?
================================================================================

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

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

GDI Stock Obj   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

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

相关文章推荐

Win32 API函数速查(英文)

  • 2010-01-21 12:03
  • 5.40MB
  • 下载

WIN32API资源

  • 2010-05-04 10:18
  • 10.55MB
  • 下载

Win32 线程的创建&信号量临界资源&事件对象

背景: 写了个程序,主要实现的功能为主线程创建两个子线程,之后主线程进入等待事件的循环。子线程1对临界资源cnt的值减2并输出cnt的值。子线程2对cnt的值加1并输出cnt的值,且当cnt为50的...

vc 资源分配释放表

  • 2010-06-26 20:42
  • 100KB
  • 下载

Win32 自定义本地资源dll

win32 本地资源 dll

WIN32学习——资源学习

1 在使用任何资源的时候都要加上头文件:#include "resource.h" 2 资源的分类(部分): 菜单资源 图标资源 光标资源 字符串资源 加速键资...

win32学习11.资源

资源文件 图标、光标、字符串、菜单、快捷键和对话框资源,位图资源等等都属于资源文件。 资源脚本文件:.rc文件。资源ID管理:resourse.h文件。 添加资源:先新建一种资源,然后取一个ID...

WIN32编程之.rc资源文件的使用

学习WIN32是否需要用VC?我的答案是:不是非要VC不可,其它IDE也可以用来学WIN32; 甚至我一度以为的学到时资源不得不用VC,目前看来只要稍微费点力气,了解一些.rc文件的东西,也是可以用其...

Win32汇编之使用资源--菜单和加速键

///我们在使用软件时可以看到菜单、图标、版本信息等,它们是可执行文件的组成     部分也是Windows中的不同类型的资源。这些资源并不在源码的数据段中定义,     而是单独放在一个节区中,需...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)