关于“系统资源”泄露的问题,来者有分

pf_ma 2001-10-25 02:32:54
一程序,在 Win98上运行,每次运行完,内存正常,但系统资源都有泄露。
请问什么可能造成“系统资源”泄露,是 HANDLE 没有关闭?COM 没有 Release?
还是什么?


...全文
102 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
RedFire 2001-10-25
  • 打赏
  • 举报
回复
转贴一篇文章:

下面为某次浏览找到的win32资源的分配清除文档,只简单的翻译了几个文字。该文档对防止资源泄露有很大帮助。抱歉一贴上就串了。

Resource Accelerators loadaccelerators Manually clear
Atoms GlobalAddAtom GlobalDeleteAtom 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
CreateDialogIndirect DestroyWindow
CreateDialogIndirectParam DestroyWindow
CreateDialogParam DestroyWindow
File OpenFile _lclose No
Fonts CreateFont DeleteObject Yes
CreateFontIndirect DeleteObject Yes
AddFontResource RemoveFontResource Yes
Gdi stock object 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 GolbalUnlock 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
Pallette 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 DestoryWindow No

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


pf_ma 2001-10-25
  • 打赏
  • 举报
回复
push
everzhou 2001-10-25
  • 打赏
  • 举报
回复
dispose(handle)
everzhou 2001-10-25
  • 打赏
  • 举报
回复
up
askquestion1978 2001-10-25
  • 打赏
  • 举报
回复
有很多原因可能造成这种结果
你说的2种也是,还有new没有del得,忘了DeleteObject得,还有些指针的使用有问题的,等等等等啦,反正是有许多
pf_ma 2001-10-25
  • 打赏
  • 举报
回复
push
pf_ma 2001-10-25
  • 打赏
  • 举报
回复
to scxy(小熊) "句话"???
scxy 2001-10-25
  • 打赏
  • 举报
回复
以句话申请的资源没有释放完
mimihuhu 2001-10-25
  • 打赏
  • 举报
回复
ji ji!
pf_ma 2001-10-25
  • 打赏
  • 举报
回复
push
mimihuhu 2001-10-25
  • 打赏
  • 举报
回复
up

2,586

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 资源
社区管理员
  • 资源
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧