现象:
在任务管理器显示我的程序的内存使用量总是在增加
我在释放指针的地方设断点,当程序运行经过时,任务管理器显示的程序的内存使用量没有明显减少
用boundschecker检查没有有显示内存泄漏
但是,当我将程序的窗口最小化时,任务管理器显示程序的内存使用量明显减少,而且立杆见影
请WINDOWS高手指点一下,我的程序到底出了什么问题,为什么会内存泄漏
我检查了好几天了,也没有发现分配而未释放的指针,或者其他我所了解的问题
急呀!

解决方案 »

  1.   

    而且任务管理器显示我的程序的虚拟内存大小也是不断增加,而且程序的窗口最小化时,也不减小。WINDOWS高手们,这个现象如何理解?多谢多谢
      

  2.   

    当最小化时,windows会自动调用一个api。这个api会把几乎所有在内存中的活动页面同步并回收,这样资源占用就少了。
    如果有资源泄露,用boundercheck应该有所体现的
      

  3.   

    这不是内存泄露,只是Windows在尽可能在应用程序最小化后释放可用内存给当前应用程序
      

  4.   

    这种事情很难说, 我的程序在WINDOWS 2000中总是在增加和减少之中, 但是总的数量保持平衡, 但是在XP中却只有增加的情况, 你也是XP?
      

  5.   

    谢谢各位
    还有一个现象就是:
    用boundschecker调试时,虽然没有显示内存泄漏,但是在程序刚刚启动的时候,有很多error,都是windows自己的函数里面的,比如API failure: FindResourceA returned HRSRC__:0x0.  Last Error: 找不到映像文件中指定的资源名。API failure: GetClassInfoA returned int:0.  Last Error: 类别不存在。 API failure: GetShortPathNameA returned unsigned int:0.  Last Error: 系统找不到指定的文件。 等等,
    这是什么原因?
    谢谢
      

  6.   

    这些只是api函数返回信息而已
    应该没有什么问题的
    因为你的程序应该会判断这些返回值
      

  7.   

    这种错误只是在用boundschecker调试时出现,直接用vc++调试无此现象