CIcqDlg *dlg = new CIcqDlg;
CLoginDlg loginDlg; 
int result = loginDlg.DoModal();
if (result == IDCANCEL)
return FALSE;
         m_pMainWnd = dlg;
if (!dlg->doLogin(&loginDlg,result))   // 在这个位置用到CIcqDlg 中的成员变量,结果发现,该成员变量还没创建。
return FALSE;

         dlg->DoModal();

解决方案 »

  1.   

    int result = loginDlg.DoModal();这一句返回后虽然对象还在,但对话框已经没有了,所以请注意。
      

  2.   

    DoModal后,对话框将被卸掉,你要用的成员不能是控件类!
    但是可以是自己加的其它成员,如int类型的成员!CDialog类中的成员变量是在你new的时候创建的(调用构造函数)
      

  3.   

    ASSERT (dlg ==NULL) ;测试一下看看是否创建成功