// 定义
CDialog *m_pDlg;
CMFCTabCtrl m_pTab;// 初始化
m_pTab.Create(CMFCTabCtrl::STYLE_3D_VS2005, CRect(0,0,100,100), this, 1030, CMFCTabCtrl::LOCATION_TOP);
m_pDlg = new CDialog;
m_pDlg->Create(IDD_SHSTOCK, this); // AddTab函数的问题,假如我注释这句代码就不会出现内存泄露
m_pTab.AddTab(m_pDlg, _T("采购系统"), 0);// 释放
if (m_pDlg && m_pDlg->GetSafeHwnd())
{
m_pDlg->DestroyWindow();
delete m_pDlg;
}
Debug调试运行结束输出:
线程 'Win32 线程' (0x10bc) 已退出,返回值为 2 (0x2)。
线程 'Win32 线程' (0x480) 已退出,返回值为 2 (0x2)。
Detected memory leaks!
Dumping objects ->
f:\dd\vctools\vc7libs\ship\atlmfc\src\mfc\strcore.cpp(141) : {387} normal block at 0x0021F670, 26 bytes long.
Data: < ] > 0C 00 E4 5D 04 00 00 00 04 00 00 00 01 00 00 00
f:\dd\vctools\vc7libs\ship\atlmfc\src\mfc\afxbasetabctrl.cpp(304) : {386} client block at 0x0021F498, subtype c0, 72 bytes long.
a CObject object at $0021F498, 72 bytes long
Object dump complete.
程序“[5336] SHErp.exe: 本机”已退出,返回值为 2 (0x2)。
那微软的招牌早该砸了,在确定之前,还是检查你的代码吧。
http://blog.csdn.net/crybird/article/details/6004040
你想到了什么