VC++, MFC, SDIアプリケーションから、リソースエディタで作成したCMyDialog(CDialogを継承)を同時に複数開こうとしていますが、これがうまくいきません。
以下のような関数を作ったところ、2度目の呼び出しで(1度目の呼び出しでダイアログが閉じてない状態で2度目を呼ぶ)失敗します。
CMyDialog *CMyWnd::OpenDialog()
{
CMyDialog *pDlg = new CMyDialog();
pDlg->Create(IDD_MYDIALOG,this); //IDD_MYDIALOGはテンプレートID
pDlg->ShowWindow(SW_SHOW);
return pDlg;
}
エラーメッセージはDebug Assertion Failed!で、wincore.cppの879行めだと言われます。同じテンプレートIDを使いまわしできないということなのでしょうか?うまい解決方法がありましたら、ご教授願います。
Assertion Dialogに情報があると思いますし,
wincore.cppの879行目を見ればassertの原因もわかると思いますけど……。
VC++ 5.0だとwincore.cppの879行目はコメントのど真ん中……。