运作一段时候后出现“所需资源不足”而崩溃是什么原因

运行一段时候后出现“所需资源不足”而崩溃是什么原因?
C/C++ code

    int offset = GetTextCharacterExtra(m_Hdc);
    int len = box.m_text.GetLength();
    int w = (m_boxWidth - (len - 1)*offset)/(len + 2);
    int h = m_boxHeight /2;
    int x=m_point.x + (col - 1)*m_boxWidth + w/2;
    int y = m_point.y + (row - 1)*m_boxHeight + (m_boxHeight - h)/2;

    CFont font;

    font.CreateFont(
    h,                        // nHeight
    w,                         // nWidth
    0,                         // nEscapement
    0,                         // nOrientation
    FW_NORMAL,                 // nWeight
    FALSE,                     // bItalic
    FALSE,                     // bUnderline
    0,                         // cStrikeOut
    ANSI_CHARSET,              // nCharSet
    OUT_DEFAULT_PRECIS,        // nOutPrecision
    CLIP_DEFAULT_PRECIS,       // nClipPrecision
    DEFAULT_QUALITY,           // nQuality
    DEFAULT_PITCH | FF_SWISS,  // nPitchAndFamily
    L"宋体");
    
    static CWnd *pwin = CWnd::FromHandle(m_hWnd);
    CClientDC dc(pwin);
    SIZE size;
    size.cx = m_boxWidth - 1;
    size.cy = m_boxHeight - 1;
    CPoint point(m_point.x + (col-1)*m_boxWidth + 1,m_point.y + (row-1)*m_boxHeight + 1);
    CRect boxrect(point,size);
    CBrush brush(box.m_bgcolor);
    dc.FillRect(&boxrect,&brush);
    dc.SetBkMode(TRANSPARENT);
    dc.SetTextColor(box.m_fontcolor);
    CFont* def_font = dc.SelectObject(&font);
    dc.TextOutW(x,y,box.m_text.GetBuffer(0),box.m_text.GetLength()*sizeof(char));
    dc.SelectObject(def_font);
    def_font->DeleteObject();
    font.DeleteObject();
    
    
    return 1;


代码如上,有什么内存泄漏问题?或哪些出了问题,运行一段时候后出现“资源不足”

------解决方案--------------------
所需资源不足.不一定是你本身程序的问题。

如果其他程序内存泄漏,导致内存被他们用完,你程序没得用,照样会出这个问题。

我没看出你有什么问题