vc++常见断言错误总结

上传人:第*** 文档编号:32819204 上传时间:2018-02-12 格式:DOC 页数:4 大小:43.50KB
返回 下载 相关 举报
vc++常见断言错误总结_第1页
第1页 / 共4页
vc++常见断言错误总结_第2页
第2页 / 共4页
vc++常见断言错误总结_第3页
第3页 / 共4页
vc++常见断言错误总结_第4页
第4页 / 共4页
亲,该文档总共4页,全部预览完了,如果喜欢就下载吧!
资源描述

《vc++常见断言错误总结》由会员分享,可在线阅读,更多相关《vc++常见断言错误总结(4页珍藏版)》请在金锄头文库上搜索。

1、断言 所在函数 具体位置 意义ASSERT(m_hWnd=NULL) CWnd:Attach()WINCORE.CPP文件中的第 320行这个断言通常可能是由于试图把一个已经捆绑(attach)过的窗口捆绑在其他的对象上,只能有一个 MFC对象能够捆绑到一个窗口上不然,消息映射就会不正常ASSERT(dwStyle& WS_POPUP) = 0) CWnd:Create()WINCORE.CPP文件中的第 747行起因是由于使用Create()函数时试图赋予 WS_POPUP风格没,但是不支持的,想要这种风格应该用CreateEx()函数ASSERT(pMap != NULL) CWnd:De

2、stroyWindow()WINCORE.CPP文件中的第 969行起因是在消息映射还没有激活的时候就关闭或是析构窗口ASSERT(cs.style & WS_CHILD) CWnd:PreCreateWindow()WINCORE.CPP文件中的第 733行原因是使用了WS_CHILD风格,对于没有子窗口,最好用 CFrameWnd而不要用 CWndASSERT(m_bitmap.m_hObject != NULL)CBitmapButton:DrawItem()WINBTN.CPP文件中的第 107行原因是在位图未加载前,试图画一个位图按钮而引起程序出错ASSERT(this != NUL

3、L) CObject:IsKindOf()OBJCORE.CPP文件的第 43行一旦 IsKindof()被一个无效的由CWnd派生的对象调用,就会产生这个断言。它说明对象没有初始化过(比如 NULL指针),或是内存先前出了故障。ASSERT(!pDX-m_bSaveAndValidate) AFXAPI DDX_Control()DLGDATA.CPP文件的调用UpdateData()或是第 624行 UpdateData(TRUE)之前至少要调用一次UpdateData(FALSE),否则就会出现这个断言ASSERT(FALSE) CDataExchange:PrepareCtrl()DL

4、GDATA.CPP文件的第 43行通常的原因是释放了一个同数据交换变量关联的控件ASSERT(:GetWindowLong(hWndCtrl, GWL_STYLE) & WS_GROUP)ASSERT(value = -1)AFXAPI DDX_Radio()DLGDATA.CPP文件的第 308和325如果这个调用针对的对象不是一个组中的第一个单选按钮,或者对组中任何一个按钮调用了不止一次,就会引起这个断言。只是第一个按钮可以有WS_GROUP窗口风格。用 Class Wnzard时,如何想要把组中的第一个按钮外的其他按钮与一个成员变量关联,唯一的方法时先给这个按钮设置 WS_GROUP风格

5、,然后关联变量,最后再去掉WS_GROUP风格。如果忘记去掉WS_GROUP,就会出现断言。ASSERT(nPageSave 1) CEditView:PaginateTo()VIEWEDIT.CPP文件的478行通常始由于重载窗口的OnprepareDC()函数时没有首先调用基类的OnprepareDC()引起的,最好在OnpreparePrinting()或是OnBeginPrinting()中设置要打印的页数ASSERT(FALSE) AFXAPI AfxMessageBox()APPUI1.CPP中的第143行这里的问题可能是由两种原因引起的:1.字符串资源不存在2.没有正确地引用资源

6、(比如说错误地号码,等等)ASSERT(m_hDC != NULL) CDC:SelectObject()对于每种类型地对象(pen,brush等)都有类似地断言。没有先调用GetDC(),CreateDC()或是 Attach()就使用对象,便会引起这个断言。这个断言本质上是说不存在一个设备上下文.ASSERT(pObject = NULL | pObject-m_hObject = h)CGdiObject:FromHandle()WINGDI.CPP第 1114行没有释放前一个对象就创建对象,便会引起这个断言-例如,调用了CreateFontIndirect()两次,但在中间没有调用De

7、leteObject()ASSERT(m_hObject = NULL) CGdiObject:Attach()WINGDI.CPP第 1120行这个断言地起因是把绘图对象(pen,brush对象)选入了设备上下文但是没有选出用SelectObject()函数ASSERT(sizeTotal.cx = 0 & sizeTotal.cy = 0)CScrollView:SetScrollSizes()VIEWSCRL.CPP文件的第 220行多数出现在使用CFromView和CScrollView的时候,起因是不正确地初始化滚动尺寸,或者忘记传递第二个参数在 Open方法中充满了断言 CStdioFile:Open() FILETXT.CPP文件这些断言捕获没有文件名,或者文件名没有以 NULL结尾等情况ASSERT(m_hMenu = NULL) CMenu:Attach()WINMENU.CPP文件的98行这个断言失败的原因是由于调用了两次 LoadMenu(),而中间没有调用DestroyMenu(), , , , , , ,流星雨是美麗的難忘 , - 认识一个人需要一分钟!喜欢一个人需要十分钟!爱上一个人需要一小时!忘记一 个人需要一辈子!

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 建筑/环境 > 工程造价

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号