各位大虾,我用VC MFC 写了一个程序。程序运行过程中,用任务管理器查看内存使用时,看到内存在缓慢增加。增加的量是4
k的倍数。但是我用VLD在关闭的时候进行检测发现内存没有泄漏。请问这是为什么啊!

解决方案 »

  1.   

    也许是其它资源如GDI资源,User资源和句柄资源的泄露导致的内存增长:
      

  2.   

    如果你程序不断申请内存,但是内存指针并没有重新申请覆盖,一般工具很难判断是泄漏,对吧。试试用DebugDiag分析一下,它可以提供详细的内存分析报告。
      

  3.   

    我用VLD试了一下,没有内存泄漏。
      

  4.   

    建议:在资源管理器中看看进程使用的 GDI HANDLE 的情况,如果是不断增加,就是 GDI 资源泄漏;如果没有,就是仅仅内存使用的问题。
      

  5.   

    看看和绘图相关的地方,GDI资源有没有释放
      

  6.   

    你要分清内存泄漏的2个方式  。 
    一个是动态申请后, 程序结束时没有释放, 这个是显性的, 正常的工具能够检测出来
    另一个是虽然你动态申请, 程序接受后也释放了, 但是运行期一直在new, 这个属于隐性泄露, 要仔细检查代码的, 工具不可能检测出来。