当前位置:编程学习 > C#/ASP.NET >>

File: f:\rtm\vctools\vc7libs\ship\atlmfc\include\afxwin1.inl

Debug Assertion Failed!
Program: x.exe
File: f:\rtm\vctools\vc7libs\ship\atlmfc\include\afxwin1.inl
Line:659

For information on how your program can cause an assertion failure,see the Visual C++ documentation on asserts

void CGridDefaultCell::SetFont(const LOGFONT* plf)
{
    ASSERT(plf);

    if (!plf) return;

    m_Font.DeleteObject();
    m_Font.CreateFontIndirect(plf);

    CGridCell::SetFont(plf);

    // Get the font size and hence the default cell size
    CDC* pDC = CDC::FromHandle(::GetDC(NULL));
    if (pDC)
    {
        CFont* pOldFont = pDC->SelectObject(&m_Font);

SetMargin(pDC->GetTextExtent(_T(" "), 1).cx);        m_Size = pDC->GetTextExtent(_T(" XXXXXXXXXXXX "), 14);
        m_Size.cy = (m_Size.cy * 3) / 2;

        pDC->SelectObject(pOldFont);
        ReleaseDC(NULL, pDC->GetSafeHdc());
    }
    else
    {
        SetMargin(3);
        m_Size = CSize(40,16);
    }
}

调用堆栈的时候会指向

AFXWIN_INLINE CSize CDC::GetTextExtent(LPCTSTR lpszString, int nCount) const
{
ASSERT(m_hAttribDC != NULL);
SIZE size;

VERIFY(::GetTextExtentPoint32(m_hAttribDC, lpszString, nCount, &size)); return size;
}


红的地方是出错的,调了N久,不知是什么原因???高手指点迷津!!!谢谢了!!
--------------------编程问答-------------------- UP一下 --------------------编程问答-------------------- up --------------------编程问答-------------------- 出现这种错误一般是你错误的是用了mfc,调试下会有异常出现
试试
先到release版本下
在出错的地方加getlasserror();
AfxMessageBox(错误号) --------------------编程问答-------------------- up  --------------------编程问答-------------------- 这个异常在我的机器上运行就会出错,但在另一台机上就会出错,开发环境和系统一样
补充:.NET技术 ,  VC.NET
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,