你看看这个帖子
http://www.csdn.net/expert/Topic/60225.shtm

解决方案 »

  1.   

    不对  不对 是这个贴子
    http://www.csdn.net/expert/TopicView.asp?id=60433
      

  2.   

    可能是因为先DeleteObject时,dc中的指针没有清空;然后DeleteDC时,MFC依次释放本dc中的各已知指针,因为pBitmap不为空,所以尝试释放,当然失败,但给了你错误信息
    你可以跟踪进去看看
      

  3.   

    To Robert2001:
    我的资源申请和释放都在一个循环里,所以是否有资源泄漏,用Windows自带的系统监视器
    很容易发现。按以前的调用顺序,一轮循环过后GDI资源从60%跳到47%,改了调用顺序,
    我连续试了五轮循环资源还是不变。
    你的意思是,把原来的GDI对象SelectObject回去就OK了?我可以试试...To kz:
    我的程序就是DEBUG版也从来没有报错,只是GDI资源下降严重
      

  4.   

    hI rchu:我想请教你,你是如何检测资源泄露的?
      

  5.   

    有没有反向SelectObject()呀?要不把代码贴出吧,这样说就像讨论哲学问题:空对空。
      

  6.   

    to:rchu(可怜的老马) 
       果然跟我的问题一样!我当时和你错的一样,后来 把原来的GDI对象SelectObject回去就OK了!  你试了吗! 成了 告诉我一声
      

  7.   

    to Robert2001:我还没有试,不过看来问题不大
    to iProgram: 我检测资源泄漏的办法是:
    启动Windows自带的"资源状况"工具,调试程序,多设几个断点,一段一段来,
    如果觉得某段代码可疑,甚至可以把它注释掉(先不管运行结果是否正确)。
    如果两个断点之间资源下降严重,并且注释掉之后资源没有明显变化,则可以初步
    确定问题地点
      

  8.   

    谢谢老马。要是有什么工具自动分析代码就好了(正在下BoundsChecker)