我是在CConferenceView中调用CLogin登录对话框的,代码如下:
BOOL CConferenceView::PreCreateWindow(CREATESTRUCT& cs)
{
CLogin *log;
log = new CLogin;
if(log->DoModal() != IDOK)
{
return FALSE;
}
else
{ }
}
点击“确定”没问题,但是我在CLogin中关闭窗口或点击“取消”按钮,程序马上崩溃。我把return FALSE;这一句删除后就没问题。怎么回事?谢谢!!
BOOL CConferenceView::PreCreateWindow(CREATESTRUCT& cs)
{
CLogin *log;
log = new CLogin;
if(log->DoModal() != IDOK)
{
return FALSE;
}
else
{ }
}
点击“确定”没问题,但是我在CLogin中关闭窗口或点击“取消”按钮,程序马上崩溃。我把return FALSE;这一句删除后就没问题。怎么回事?谢谢!!
CLogin log;
if(log.DoModal() != IDOK)
{ return FALSE;
}
else
{ }
return之前没有delete对话框指针log其它原因不明。建议:
1、请养成变量命名习惯,指针前一般前缀p,如CLogin *pDlgLog = new CLogin;
2、new和delete请注意配对使用
既然是登陆对话框,那么你就放到你的App的InitInstance()中,当登陆失败,直接return FALSE;.App也就退出了