zoukankan      html  css  js  c++  java
  • VC 6.0 the error type

     

     

    VC 6.0 常见断言错误总结

    断言

    所在函数

    具体位置

    意义

    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::DestroyWindow()

    WINCORE.CPP文件中的第969

    起因是在消息映射还没有激活的时候就关闭或是析构窗口

    ASSERT(cs.style & WS_CHILD)

    CWnd::PreCreateWindow()

    WINCORE.CPP文件中的第733

    原因是使用了WS_CHILD风格,对于没有子窗口,最好用CFrameWnd而不要用CWnd

    ASSERT(m_bitmap.m_hObject != NULL)

    CBitmapButton::DrawItem()

    WINBTN.CPP文件中的第107

    原因是在位图未加载前,试图画一个位图按钮而引起程序出错

    ASSERT(this != NULL)

    CObject::IsKindOf()

    OBJCORE.CPP文件的第43

    一旦IsKindof()被一个无效的由CWnd派生的对象调用,就会产生这个断言。它说明对象没有初始化过(比如NULL指针),或是内存先前出了故障。

    ASSERT(!pDX->m_bSaveAndValidate)

    AFXAPI DDX_Control()

    DLGDATA.CPP文件的第624

    调用UpdateData()或是UpdateData(TRUE)之前至少要调用一次UpdateData(FALSE),否则就会出现这个断言

    ASSERT(FALSE)

    CDataExchange::PrepareCtrl()

    DLGDATA.CPP文件的第43

    通常的原因是释放了一个同数据交换变量关联的控件

    ASSERT(::GetWindowLong(hWndCtrl, GWL_STYLE) & WS_GROUP)

     

     

    ASSERT(value == -1)

    AFXAPI DDX_Radio()

    DLGDATA.CPP文件的第308325

    如果这个调用针对的对象不是一个组中的第一个单选按钮,或者对组中任何一个按钮调用了不止一次,就会引起这个断言。只是第一个按钮可以有WS_GROUP窗口风格。用Class Wnzard时,如何想要把组中的第一个按钮外的其他按钮与一个成员变量关联,唯一的方法时先给这个按钮设置WS_GROUP风格,然后关联变量,最后再去掉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.
    没有正确地引用资源(比如说错误地号码,等等)

    ASSERT(m_hDC != NULL)

    CDC::SelectObject()

    对于每种类型地对象(pen,brush)都有类似地断言。

    没有先调用GetDC(),CreateDC()或是Attach()就使用对象,便会引起这个断言。这个断言本质上是说不存在一个设备上下文.

    ASSERT(pObject == NULL || pObject->m_hObject == h)

    CGdiObject::FromHandle()

    WINGDI.CPP1114

    没有释放前一个对象就创建对象,便会引起这个断言---例如,调用了CreateFontIndirect()两次,但在中间没有调用DeleteObject()

    ASSERT(m_hObject == NULL)

    CGdiObject::Attach()

    WINGDI.CPP1120

    这个断言地起因是把绘图对象(pen,brush对象)选入了设备上下文但是没有选出[SelectObject()函数]

    ASSERT(sizeTotal.cx >= 0 && sizeTotal.cy >= 0)

    CScrollView::SetScrollSizes()

    VIEWSCRL.CPP文件的第220

    多数出现在使用CFromViewCScrollView的时候,起因是不正确地初始化滚动尺寸,或者忘记传递第二个参数

    Open方法中充满了断言

    CStdioFile::Open()

    FILETXT.CPP文件

    这些断言捕获没有文件名,或者文件名没有以NULL结尾等情况

    ASSERT(m_hMenu == NULL)

    CMenu::Attach()

    WINMENU.CPP文件的98

    这个断言失败的原因是由于调用了两次LoadMenu(),而中间没有调用DestroyMenu()

  • 相关阅读:
    笔记35 跨重定向请求传递数
    判断邮箱的正则表达式
    按钮
    async await 的用法
    笔记34 Spring MVC的高级技术——处理multipart形式的数据
    Convert Sorted Array to Binary Search Tree
    Binary Tree Zigzag Level Order Traversal
    Unique Binary Search Trees,Unique Binary Search Trees II
    Validate Binary Search Tree
    Populating Next Right Pointers in Each Node,Populating Next Right Pointers in Each Node II
  • 原文地址:https://www.cnblogs.com/CBDoctor/p/2869480.html
Copyright © 2011-2022 走看看