Win32 API资源分配释放速查,防止代码资源泄露

原创 2000年12月29日 00:39:00
 

下面为某次浏览找到的Win32资源的分配清除文档,只简单的翻译了几个文字。该

文档对防止资源泄露有很大帮助。抱歉一贴上就串了。

***********************************************************************

资源                     分配函数                                   清除函数              需要手动清除?

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

 <?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

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资源分配释放速查

                         下面为某次浏览找到的Win32资源的分配清除文档,只简单的翻译了几个文字。该文档对防止资源泄露有很大帮助。======================...
  • windboyzsj
  • windboyzsj
  • 2007年09月23日 21:19
  • 851

Win32 API资源分配释放速查(转)

转自: http://www.cnblogs.com/mugua/archive/2010/01/07/1641191.html
  • qingmoshu
  • qingmoshu
  • 2017年03月02日 18:40
  • 44

C++中如何避免资源泄漏

请看下面一段代码 { object *p = new object(); ... delete p; } 如果在执行delete这行代码之前该片段产生异常,程序会在发生异常...
  • ljlstart
  • ljlstart
  • 2016年04月16日 09:53
  • 992

MFC解决程序退出时死锁和内存或资源泄露的问题

1.在OnDestroy等Windows消息处理函数里,慎用WaitForSingleObject函数,如果等待的对象再被通知之前,另外的线程直接或间接触发了其他消息处理函数,则会引发消息排队,由于当...
  • qq445803843
  • qq445803843
  • 2015年08月17日 16:14
  • 511

防止核心代码泄露-项目代码保护(游戏服务器端)

重要的核心代码,是不希望被非核心成员,或者新招来的程序接触到的。否则,招个新程序,人家试用期没过,反倒把你代码拷走了,回头想攻击、破解、贩卖,都是分分钟的事儿。这种事儿,我已经见过不止一次了。本文就讲...
  • chenggong2dm
  • chenggong2dm
  • 2017年12月28日 18:30
  • 283

最近在SPARK上定位的几个内存泄露问题总结

最近为了测试延云YDB在高并发请求和持续性请求情况下的表现,发现了spark的不少关于内存泄露的问题,这些问题均在延云YDB提供的SPARK版本中得以修正,现将问题总结如下。 1.    高并发情况下...
  • qq_33160722
  • qq_33160722
  • 2017年01月05日 14:26
  • 1751

LTE资源分配

3G LTE动态资源分配机制研究字号:  [url=javascript:doZoom(12);]小[/url]  [url=javascript:doZoom(14);]中[/url]  [url=...
  • madman1224
  • madman1224
  • 2009年05月03日 15:02
  • 1678

资源分配图

为了准确的描述死锁问题,我们引出了资源分配图
  • ai977313677
  • ai977313677
  • 2017年05月27日 11:48
  • 1974

如何防止源码外泄

使用DSA数据安全区域 一、在终端上隔离出安全区,用于保护源代码等敏感数据安全,防止其泄露; 实现效果: 1、安全区磁盘隔离,进入须通过身份认证,可选用硬件KEY; ...
  • liunx___
  • liunx___
  • 2017年09月03日 14:45
  • 192

手把手教你---进程资源分配

一 了解进程资源图Markdown编辑器用的还不是太熟,表格中插入图片这事还没学会,纠结着在Word中总结了下,然后截个图放在下面供大家参考:二 化简资源分配图方法步骤 第一步:先看系统还剩下多少资源...
  • u010853701
  • u010853701
  • 2015年05月30日 17:52
  • 7187
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Win32 API资源分配释放速查,防止代码资源泄露
举报原因:
原因补充:

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