在动态库中创建的非模态对话框delete时为什么会出错?
我的DLL中输出一个函数,输出函数内容如下:
exterm "c" __declspec(dllimport) void MyFunc()
{
AFX_MANAGE_STATE(AfxGetStaticModuleState());
CADlg a;
a.DoModal();
}
在CADlg的构造函数中new了两个非模态对话框
{
m_pB=new CBDlg;
m_pB->Create(IDD_B_DLG);
m_pC=new CCDlg;
m_pC->Create(IDD_C_DLG);
}
在关闭CADlg对话框时删除这两个对话框
CADlg::OnClose()
{
delete m_pB;
delete m_pC;
}
在主程序中用LoadLibrary显式调用DLL,执行输出函数
问题来了
在调试的时候发现,执行delete m_pB;这句时居然m_pC指向的内容也变了
导致delete m_pC;时程序出错。这是为什么啊?
之前看csdn上有人说是虚函数表、对象析构什么的问题
但讲的不清楚,还望高人指教,谢谢~!