MFC 关于模式对话(DoModal)的有关问题 使用new报错

MFC 关于模式对话(DoModal)的问题 使用new报错
new和domodal一起用会报错吗?模态对话框是不是不能用new?
之后用delete是不是销毁了两次?
C***Dlg * dlg=new C***Dlg();
dlg->DoMoDal();
delete dlg;
mfc 模态

------解决方案--------------------
应该可以,报什么错?
------解决方案--------------------
非模式对话框用new和Create
------解决方案--------------------
CSocketDlg *pdlg=new CSocketDlg;
m_pMainWnd = pdlg;
INT_PTR nResponse = pdlg->DoModal();
if (nResponse == IDOK)
{
// TODO: 在此放置处理何时用
//  “确定”来关闭对话框的代码
}

调试可以.
------解决方案--------------------
CDialog用得着new?
咱一直都是直接C***Dlg dlg;dlg.DoModal();变量初始化的话单独放个自定义函数或者OnInitDlg。
学习中...
------解决方案--------------------
引用:
Quote: 引用:

应该可以,报什么错?


我觉得这样做没问题。但是同事说这样是错的,说只能是C***Dlg dlg;dlg.DoModal();


你同事瞎掰,真怀疑他懂不懂?两个都可以!
------解决方案--------------------
引用:
Quote: 引用:

Quote: 引用:

应该可以,报什么错?


我觉得这样做没问题。但是同事说这样是错的,说只能是C***Dlg dlg;dlg.DoModal();


你同事瞎掰,真怀疑他懂不懂?两个都可以!

非模态对话框是,new -> Create -> Show;
非模态是,建立对话框资源 ->关联对话框类(C***Dlg) ->定义变量 -> 最后DoModal()

上面的步骤是我会的,可能还有我不知道的方法;
如果C***Dlg没有关联对话框资源的话,直接DoModal应该会出错吧???求解??
------解决方案--------------------
上面写错了,模态是,建立对话框资源……………………
------解决方案--------------------
可以使用DLGTEMPLATE创建
------解决方案--------------------
引用:
Quote: 引用:

CDialog用得着new?
咱一直都是直接C***Dlg dlg;dlg.DoModal();变量初始化的话单独放个自定义函数或者OnInitDlg。
学习中...

那非要用new的话,是不是有错误?


理论上都是调用默认构造,没啥区别吧。
不过,DoModal()里面会不会有对UI元素进行析构的操作呢?记得Debug时在DoModal()后设断点的话,在对话框里点OK或者关闭时就断点上了。不知道之后对UI有关元素的操作会不会报错。
但如果,只是单纯的指针或者普通变量的区别的话,应该不会出错吧。咱刚刚在自己一个程序上小改了一下,没发现有异常。最后,LZ的报的错是啥啊?
------解决方案--------------------
void CMainFrame::OnTest() 
{
Testdlg *estlg=new Testdlg();
estlg->DoModal();
delete estlg;
//AfxMessageBox("MAINFRM ---AfxMessageBox-----MAINFRM");
// TODO: Add your command handler code here

}
没有问题,正常运行。