在一个文件中定义:CDialog *showDlg;void ShowResult(CDialog& dlg)
{
showDlg = &dlg;
dlg.UpdateData(false);// (1)
}void A()
{
showDlg->UpdateData(false); //(2)
}
主窗口中调用ShowResult(*this); 结果在(1)句处正常,(2)句处
debug assertion failed! 这是为什么?
{
showDlg = &dlg;
dlg.UpdateData(false);// (1)
}void A()
{
showDlg->UpdateData(false); //(2)
}
主窗口中调用ShowResult(*this); 结果在(1)句处正常,(2)句处
debug assertion failed! 这是为什么?
ShowResult并没直接调A,怎么会执行到(2)?A处加ASSERT_VAILD(showDlg)断言下什么问题
{
showDlg = dlg;
dlg->UpdateData(false);// (1)
}void A()
{
if (showDlg)
showDlg->UpdateData(false); //(2)
}
主窗口中调用ShowResult(this);