断言docmgr.cpp,852行的问题
都博裕
2023-12-01
Programming VC++,中文书名《VC++ 技术内幕》的示例ex20d演示了MDI程序中多doc/view的使用,加了一个HexView
其中的CEx20dApp::InitInstance()函数中:
CMultiDocTemplate* pDocTemplate;
pDocTemplate = new CMultiDocTemplate(
IDR_EX20DTYPE,
RUNTIME_CLASS(CPoemDoc),
RUNTIME_CLASS(CChildFrame), // custom MDI child frame
RUNTIME_CLASS(CStringView));
AddDocTemplate(pDocTemplate);
m_pTemplateHex = new CMultiDocTemplate(
IDR_EX20DTYPE,
RUNTIME_CLASS(CPoemDoc),
RUNTIME_CLASS(CChildFrame),
RUNTIME_CLASS(CHexView));
AddDocTemplate(m_pTemplateHex);//原代码无此处,appended by zyy
但引发断言于docmgr.cpp,line 852。
发现,在
int CEx20dApp::ExitInstance()
{
delete m_pTemplateHex;//here!!!!!!!!!
return CWinApp::ExitInstance(); // saves profile settings
}
将此处注释即可