Win32 API資源分配釋放速查,防止程式碼資源洩露 (轉)
下面為某次瀏覽找到的資源的分配清除文件,只簡單的翻譯了幾個文字。該
文件對防止資源洩露有很大幫助。抱歉一貼上就串了。
***********************************************************************
資源 分配 清除函式 需要手動清除?
======================================================================
:namespace prefix = o ns = "urn:schemas--com::office" />
Accelerators LoadAccelerators N/A No
Atoms GlobalAddAtom GlobalFreeAtom Yes
Bitmaps CreateBitmap Delete Yes *
CreateBitmndirect DeleteObject Yes *
CreateCompatibleBitmap DeleteObject Yes *
CreateDIBitmap DeleteObject Yes *
CreateDiscardableBitmap DeleteObject Yes *
Loaitmap 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
AddFontRe RemoveFontResource Yes
GDI Stock Obj GetStockObject N/A No &
Hook SetHook UnhookWindowsHook Yes
IC CreateIC DeleteDC Yes
Icon CreateIcon DestroyIcon Yes
LoadIcon N/A No
Library LoadLibrary FreeLibrary Yes
Memory AllocDStoCSAlias Freeor Yes
AllocSelector FreeSelector Yes
GlobalAlloc GlobalFree No
GlobalDOSAlloc GlobalDOr 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(內定資源)
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10752043/viewspace-987688/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 原則9:使用解構函式防止資源洩露函式
- 資源洩露檢測《續》薦
- 自動釋放系統資源(轉載)
- RAII:在類的建構函式中分配資源,在解構函式中釋放資源AI函式
- 開源新聞:開源仿生腿、Python 資料管道、資料洩露檢測Python
- Window黑客程式設計之資源釋放技術黑客程式設計
- 如何防止 goroutine 洩露Go
- MediaPlayer原始碼存在的記憶體洩漏問題,釋放資源的正確方式原始碼記憶體
- java try(){}catch(){}自動資源釋放Java
- 遊戲開發新手入門之Win32程式資源(轉)遊戲開發Win32
- 企業如何有效防止資料洩露?如何選擇資料防洩漏工具?
- 大資料資訊時代,如何防止資料洩露,大資料防洩漏解決方案大資料
- 程式碼安全測試第二十期:資源未關閉/釋放漏洞
- API 資源和 API 資源集合的輔助修改API
- 如何防止 goroutine 洩露(二)Go
- Win10怎麼一鍵釋放系統資源 win10一鍵釋放系統資源的步驟Win10
- 企業如何有效防止原始碼洩露及篡改?原始碼
- 淺談C#託管程式中的資源釋放問題C#
- sap提供了一個命令cleanipc來釋放資源
- 關於java執行緒釋放資源問題Java執行緒
- 程式設計資源收集(轉)程式設計
- 人工智慧如何防止資料洩露後的疲勞現象人工智慧
- Spark如何進行動態資源分配Spark
- 無線資源分配方法(筆記)筆記
- jdbc statment 資源釋放問題(高手請進入)JDBC
- 核心是如何給容器中的程式分配CPU資源的?
- 記憶體的分配與釋放,記憶體洩漏記憶體
- 不讓資料隨員工走人:防止內部資訊洩露的策略
- 重寫 API 資源分頁資料API
- 資訊洩露之web原始碼洩露Web原始碼
- J-LINK RTT列印除錯,釋放串列埠資源除錯串列埠
- Spark2 jar包執行完成,退出spark,釋放資源SparkJAR
- 請教:JBoss伺服器不能釋放資源的問題伺服器
- .NET 記憶體管理兩種有效的資源釋放方式記憶體
- 什麼是資料洩露?哪些問題可導致資料洩露
- GDI資源洩漏導致的程式異常的解析
- 如何防止內部人員誤操作和病毒導致的資料洩露
- 情感分析資源 (轉)