嗨,我正在 MFC 中制作一个基于对话框的应用程序,使用:
BOOL CClockMasterDlg::OnInitDialog()
{
CDialogEx::OnInitDialog();
m_ModeTabs.Create(this,WS_CHILD | WS_VISIBLE, 0);
}
m_ModeTabs
如果我在使用以下方法创建函数后销毁CClockMasterDlg::OnInitDialog
它:
m_ModeTabs.DestroyWindow();
我没有内存,但是当我将它放入CClockMasterDlg::OnDestroy()
内存时会泄漏,即使它很难被调用并返回true
。我不相信这OnDestroy
是OnInitDialog
相反的,但那是哪个功能呢?没有OnExitDialog
。
检测到内存泄漏!转储对象 -> {601} 客户端块0x00AEED48
,子类型 c0,212 字节长。一个CMFCVisualManager
对象$00AEED48
, 212 字节长 对象转储完成。程序[5312] ClockMaster.exe: Native
以代码 2 (0x2) 退出。
即使很难,窗口也应该自动销毁,因为它不是指针,我仍然不应该出现内存泄漏吗?而且由于放置
m_ModeTabs.DestroyWindow();
在OnInitDialog
创建后的函数中解决了内存泄漏,它真的不能是其他原因造成的麻烦吗?删除m_ModeTabs.Create(...
还解决了内存泄漏,所以我很确定它m_ModeTabs
会导致它。