错误提示:
---------------------------
Microsoft Visual C++ Runtime Library
---------------------------
Debug Assertion Failed!
Program: ...ram Files (x86)\VC¹¤³Ì\ÎäÁÖÍ⴫С¸¨Öú\WGDll\Release\WGDll.dll
File: f:\dd\vctools\vc7libs\ship\atlmfc\src\mfc\winctrl3.cpp
Line: 209
For information on how your program can cause an assertion
failure, see the Visual C++ documentation on asserts.
(Press Retry to debug the application)
---------------------------
中止(A) 重试(R) 忽略(I)
---------------------------
描述:
MFC程序中 自己添加了个CCheckListBox控件 使用了默认属性 当调用AddString方法时出现以上错误
CCheckListBox m_clb_Mon;
m_clb_Mon.AddString(_T("111"));
解决方法:
修改CCheckListBox控件属性 HasString 改成 TRUE Owner Draw 改成 Fixed
类似的错误参考:http://ask.csdn.net/questions/24413
Debug Assertion Failed! 在winctrl3.cpp Line:525.求给解决意见,在线等
winctr13 cppc++mfc
错误如图:
出错代码如下:
void CCheckListBox::PreSubclassWindow()
{
CListBox::PreSubclassWindow();
// CCheckListBoxes must be owner drawn
**ASSERT(GetStyle() & (LBS_OWNERDRAWFIXED | LBS_OWNERDRAWVARIABLE));** ->出错代码行525
}
解决了,按出错代码ASSERT(GetStyle() & (LBS_OWNERDRAWFIXED | LBS_OWNERDRAWVARIABLE));可知是控件类CCheckListBox对象的问题,检查了自己的控件发现在LISTBOX控件中行为中'Has Strings'必须设置TRUE,且"Owner Draw"必须设置Fixed.之前设置的分别是FALSE和NO,唉,总算解决了,昨天困惑了一晚上,以前碰到这种
Debug Assertion Failed!感觉无从下手,现在发现也没什么,定位发生ASSERT的代码,就可以知道是哪里出错了,呵呵,以后不会对这种错误畏惧了.哦,还有这个"f:\dd\vctools\vc7libs\ship\atlmfc\src\mfc\winctrl3.cpp"不是真实文件位置,是个符号文件,可以在VS2008安装文件中查找正确文件.嗯,说到这吧.