程序出错“必须的资源没有获得”,急
程序运行一段时间以后,弹出"必须的资源没有获得"
(一天以上,短时间不会)
然后非法操作,挂掉了.
那为弟兄遇到过这种问题,或者知道怎么解决这种问题.
我的程序是一个定时循环执行某以任务的程序.
按理说,发生这样的错误,是不是我申请了系统的一些资源,没有释放而产生的?
但是我已经很注意这个问题,在createdc之类的函数之后,都deletedc了的.
也没有使用什么getdc的调用,
除了dc这类资源还有什么资源会引起这种错误?
请问还有那些方面会引起这种错误?!大家帮个忙,我现在怎么也想不到问题的根源......郁闷
先谢了
由于现在在外地出差,上网不是很方便,可能回帖会慢些.
问题点数:100、回复次数:8Top
1 楼DentistryDoctor(不在无聊中无奈,就在沉默中变态)回复于 2004-09-01 13:52:09 得分 80
还就是SelectObject的问题,你用任务管理器看看GDI对象是不是在增加,如果没有那可能不是GDI的问题。有可能是内核对象没关闭。Top
2 楼BLsoft(網龍ζ龍活)(Cyber-Security of [MVP])回复于 2004-09-01 14:03:15 得分 5
用查内存漏洞的工具看看Top
3 楼zhushizu(从来就没有救世祖)回复于 2004-09-01 14:04:00 得分 5
是呀,我也是想了好久。。关注中。。。Top
4 楼chen18s(印度神棍)回复于 2004-09-01 14:12:11 得分 5
那个QQ2004带外挂版就有这问题..
它也是使用了GDI的...Top
5 楼ningzhiyu(凝滞雨)回复于 2004-09-01 20:26:22 得分 0
应该不是一般的(new --delete)内存泄漏
用boundschecker检查了,没有发现问题。
我用的是vc6.0
to: DentistryDoctor(牙科医生)
任务管理器能看到GDI对象吗?在那里?(我的操作系统是2000pro)
Top
6 楼ningzhiyu(凝滞雨)回复于 2004-09-01 20:30:20 得分 0
内核对象?我不是很清楚这些东西,能不能说的详细些,谢谢先。
哎,对vc中很多封装的东西的细节不知道,出了问题都不知道那里找,郁闷……
程序快要交差了。。急啊
Top
7 楼chqu18(无色无味)回复于 2004-09-01 21:30:03 得分 5
这个情况我也遇到过,我的也是运行了一段时间后就出现这个问题。
createdc之类的函数之后,你要检查是不是每个你create出来的对象你都要进行delete掉
包括画笔或者画刷等,要不到最后create多了就出现“所须资源无法得到”了Top
8 楼ningzhiyu(凝滞雨)回复于 2004-09-04 12:47:55 得分 0
问题已经解决。
是cdc对象的内存泄露问题。
谢谢各位关心。
to:DentistryDoctor(牙科医生)
不是selectobject的问题,但是是gdi的问题
问题描述:
我在一个定时器中有代码
(双缓冲显示用的,临时对象)
CDC mendc
memdc.Create...DC(...);
memdc.deleteDC()
的代码。
发现程序的内存不断增叫。当这个定时器运行到10000左右,就出错了。
不知道算不算cdc对象的一个漏洞,
解决办法: 把CDC memdc 作为一个类成员,而不在timer里面不停的定义。
问题就解决了。
Top




