我的程序运行一段时间后,系统就弹出对话框"所需的资源无法得到"
以后程序就运行不正常~~这是为什么??我发了3个帖子了,可是没人告诉我是怎么回事~
真的没人知道吗???高手告诉我一下哈~~
谢谢////

解决方案 »

  1.   

    检查你的SelectObject()函数有没释放比如
    HBITMAP hOldBitmap = (HBITMAO)::SelectObject(hDC, hBitmap);
    ...
    ...
    ::SelectObject(hDC, hOldBitmap);
      
     另外,你最好将你的关键部分代码贴出来,别人才有办法帮你查到原因啊
      

  2.   

    不好意思,一着急忘了~~~
    VC++6.0 +ADO +Access2000管理系统~~~代码我不知道哪出现了问题,代码很多~->(苦丁茶):
    我在程序里面用了SelectObject()函数
    怎样释放???
    CPen mp_right;
    mp_right.CreatePen(PS_INSIDEFRAME | PS_SOLID, 3, RGB(251, 202, 106));
    pDC->SelectObject(&mp_right);
    ....
    mp_right.DeleteObject(mp_right);用Delete释放行吗??
    怎样释放才好????
      

  3.   


    在CView类的OnDrew()函数里:        CClientDC dc(this);
            CRect rect;
            GetClientRect(&rect);//得到窗体的大小
            CDC dcMem; 
            dcMem.CreateCompatibleDC(&dc); 
            CBitmap back;
            back.LoadBitmap(IDB_BITMAP4);//加载背景图片
            BITMAP bitMap;
            back.GetBitmap(&bitMap);
            CBitmap *pbmpOld=dcMem.SelectObject(&back);
            dc.BitBlt(200,200,rect.Width(),rect.Height(),&dcMem,0,0,SRCCOPY);
            dcMem.DeleteDC();
    这一段代码的SelectObject()有没有释放>?或者用的对吗??
      

  4.   

    你要把你的以前的pbmpOld选择了。这样你就可以把去释放你加入的新的Obj了。
      

  5.   

    CBitmap *pbmpOld=dcMem.SelectObject(&back);
            dc.BitBlt(200,200,rect.Width(),rect.Height(),&dcMem,0,0,SRCCOPY);
    CBitmap *pbmpOld=dcMem.SelectObject(&back);
            dc.BitBlt(200,200,rect.Width(),rect.Height(),&dcMem,0,0,SRCCOPY);
    dcMem.SelectObject(pbmpOld);还有,你的back.LoadBitmap(IDB_BITMAP4);//加载背景图片
    看样子图片资源是确定的,那你就把他定义在类里面,避免多次load浪费资源