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

kathycxx 2008-03-11 05:07:17
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久,不知是什么原因???高手指点迷津!!!谢谢了!!
...全文
675 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
kathycxx 2008-03-12
  • 打赏
  • 举报
回复
这个异常在我的机器上运行就会出错,但在另一台机上就会出错,开发环境和系统一样
kathycxx 2008-03-12
  • 打赏
  • 举报
回复
up
whycom 2008-03-12
  • 打赏
  • 举报
回复
出现这种错误一般是你错误的是用了mfc,调试下会有异常出现
试试
先到release版本下
在出错的地方加getlasserror();
AfxMessageBox(错误号)
kathycxx 2008-03-11
  • 打赏
  • 举报
回复
up
kathycxx 2008-03-11
  • 打赏
  • 举报
回复
UP一下

7,540

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 VC.NET
社区管理员
  • VC.NET社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧