一个多文档的程序CMyTitle,有四个子窗口CMyNewView1,CMyNewView2,CMyNewView3,CMyNewView4.
分别对应四个文档类CMyNewDoc1,CMyNewDoc2,CMyNewDoc3,CMyNewDoc4.
我在窗口左边加了一个树状菜单来对应每个子窗口,
然后我在CMyNewDoc1中定义一个链表CObList m_ObList1;
然后在CMyNewView1的OnDraw()函数中调用
    CMyNewDoc1* pDoc = GetDocument();
    ASSERT_VALID(pDoc);
来获得文档指针,但是程序一运行到CMyNewDoc1* pDoc = GetDocument();
CMyNewDoc* CMyNewView::GetDocument() // non-debug version is inline
{
(1) ASSERT(m_pDocument->IsKindOf(RUNTIME_CLASS(CMyNewDoc)));
return (CMyNewDoc*)m_pDocument;
}
执行(1)时就出现Debug Assertion Failed错误。请问是怎么回事啊?

解决方案 »

  1.   

    而且我发现在加上强制类型转换后
       CMyNewDoc1*  pDoc  =  (CMyNewDoc1*)GetDocument();  
       ASSERT_VALID(pDoc);  
    在后面调用CMyNewDoc1中的链表m_ObList1
       POSITION pos = pDoc->m_NETObList.GetHeadPosition();
    所得的pos居然不等于NULL!
       我并没有在m_ObList1添加任何东西啊,在单文档里面用就好好的。
     在线等!