程序使用拆分窗口,左边是CTreeView继承来的,右边CMyRecordView从CRecordView继承,在CMyRecordView的OnInitialUpdate()中初始化
m_pSet = &((CAddressbookDoc *)GetDocument()) -> m_AddRecSet;其中m_AddRecSet是从CRecordSet类继承来的CMyRecordSet类的对象,CMyRecordSet类已经与CMyRecordView绑定在CMyRecordView中添加函数
void CMyRecordView::Add(若干参数)
{
    m_pSet -> AddNew();
.................
}然后在MainFrm.cpp中添加一个菜单项,相应的操作就是
弹出对话框,用来输入数据,然后调用CMyRecordView::Add()函数编译无错误,但是运行时出错
设置断点发现,在OnInitialUpdate()中初始化的m_pSet值,到了
CMyRecordView::Add()中变了,就是说m_pSet不再指向m_AddRecSet
但是这之间并没有对m_pSet进行操作。哪位高人能够解决这个问题,小弟跪谢了

解决方案 »

  1.   

    总不至于凭空变了吧。是不是m_AddRecSet变了呢?
      

  2.   

    嗯,m_pSet指向m_AddRecSet,假如m_pSet没改变过的话,那就像楼上所说的,检查一下m_AddRecSet有没有问题吧。
      

  3.   

    直接从CRecordView中继承一个类,然后添加add函数一点问题都没有
    为什么使用了拆分窗口,在其中一个从CRecordView中继承过来的子窗口中使用这个函数
    就会在m_pSet -> AddNew();这里出错呢.....
    郁闷
      

  4.   

    确定数据库是否打开;
    确定RECORDSET是否打开