我的程序跑一会就把GDI资源吃光了,用BoundCheck查也没有资源泄漏,大家有没有办法

解决方案 »

  1.   

    按MSDN说的方法做. 你分配GDI的时候,MSDN都会说"不用的时候应该..."
      

  2.   

    DeleteObject了,不是资源泄漏,是资源吃的太多了(要创建许多画笔和画刷)。有没有办法主动调用什么函数马上把资源释放的。
      

  3.   

    woxoxow(干尸肉片) 说的对,我也遇到过这个问题,起初也是
    最后一起释放,后来改为用完一个释放一个,结果问题就解决了。试一下吧!
      

  4.   

    woxoxow(干尸肉片) 说的对,我也遇到过这个问题,起初也是
    最后一起释放,后来改为用完一个释放一个,结果问题就解决了。试一下吧!
      

  5.   

    谢谢各位
    我也不知道它什么时候放的
    我用的是Gdi+,它是自动释放的(以类的形式)
    不知谁用过,碰到过这样的问题
      

  6.   

    什么时候用, 什么时候分配,然后用完就del
      

  7.   

    谢谢 woxoxow(干尸肉片) ,我试试
    BTW:你的ID好恐怖
      

  8.   

    一个程序在nt/2000下也只允许存在16384个GDI对象,98下更少。所以你需要节约着用啊,呵呵。
    你的是画图程序马?为何需要那么多GDI对象?我做个一个程序,用GDI画几万个区域也只要几百个GDI对象啊。
    建议:
    1。不要把GDI对象作为类成员变量,否则对象多了就很浪费GDI句柄
    2。如果是纯色填充,建议使用Stock对象,这样速度快,且不占用新的GDI句柄
      

  9.   

    如果你用的是GDI+的话,给你说个我一小点的关于释放资源的经验如果你在循环体中创建对象并且对象是临时性的,切记:申请与释放资源全部在循环体中完成!
    不知道是否有帮助