帮忙找一下内存泄漏在哪儿
帮忙找一下内存泄漏在哪里程序是用Win32 API写的。这只是核心代码,其中Render会被不断循环调用,这个只是一
帮忙找一下内存泄漏在哪里
程序是用Win32 API写的。
这只是核心代码,其中Render会被不断循环调用,这个只是一个我用来测试的程序,原程序比这复杂得多,但是出问题的与这部分代码功能一样,只是所加载的图片不是固定的,而是一直在变。
程序一跑起来就可以看到内存开始缓慢增长,因为只有一张图的资源在泄漏,涨的不是很快,但是我可以肯定的是如果放着不管,几个小时后我电脑内存就会爆掉,我怀疑是CImage造成的内存泄漏,在网上搜了好多这方面的信息,都不能解决我的问题,不要说用ReleaseGDIPlus,这个函数一样不行,已经试过了。
自己的写的代码,最清除那里进行的内存分配,那里进行堆空间的申请阿!
而且更加清楚那里去作响应的释放空间的!
[解决办法]建议将循环调用的函数中的dc等相关资源在外部申请和释放,避免在循环中频繁申请释放
------解决方案--------------------
还是说我理解错你的意思了,那你再说详细点?
表示不行,我试了,还是内存泄漏,不是Release的问题。
你该使用内存泄露检测工具了:vld很简单易用。
[解决办法]检查是否资源泄漏的办法之一:
在任务管理器 进程 查看 选择列 里面选择:内存使用、虚拟内存大小、句柄数、线程数、USER对象、GDI对象
让你的程序(进程)不退出,循环执行主流程很多遍,越多越好,比如1000000次甚至无限循环,记录以上各数值,再隔至少一小时,越长越好,比如一个月,再记录以上各数值。如果以上两组数值的差较大或随时间流逝不断增加,则铁定有对应资源的资源泄漏!