VC2008 MFC MDIベースのソフトを作成しています。
下記???の箇所でdocの後処理をしなければいけないと思うのですが
後処理の方法を教えて下さい。
それとも何もしなくてよいのでしょうか?
CDocument* doc = m_docTemplate->CreateNewDocument();
if (doc->Read() == FALSE)
{
???;
return;
}
CFrameWnd* pFrame = m_docTemplate->CreateNewFrame(doc, NULL);
m_docTemplate->InitialUpdateFrame(pFrame, doc);
何もせずにreturnした場合とdelete doc;してreturnした場合、
どちらもリークは発生せず、表面上、特に不具合はありませんでしたが
気持ち悪くって。
よろしくお願いします。
CDocument::OnCloseDocumentはどうでしょう?
ドキュメントクラスは、CDocTemplateにて登録・管理されている
アプリケーション終了時にはこいつが全部消してくれますから
終了時にはリークになることはありません。
また、CDocument::~CDocument()内で登録で、自身の登録を削除していますから
delete doc;すれば、管理からも解除されて消えます
ただ、ドキュメントに関連づけてあるViewを消してるのはOnCloseDocument内のようです
ryoさん
返信が遅くなり大変申し訳ありません。
ご回答ありがとうございました。
何だかすっきりしました!
ツイート | ![]() |