首页 > 解决方案 > 使用多个 CDHtmlDialogs 保持未释放的内存。(导航相同的 Url)

问题描述

MFC多次创建无模式CDHtmlDialog并删除一个或多个,内存保持未释放并为每个CDHtmlDialog堆积10~20MB,直到创建新的无模式CDHtmlDialog并删除所有CDHtmlDialog。

我尝试了这些解决方案。但没有解决。

    VOID CMyManagerDlg::CreateMyDlg()
    {
        CMyDlg *pMyDlg = new CMyDlg();
        pMyDlg->Create(IDD_CID, GetDesktopWindow());
        m_pMyDlg = pMyDlg;
        m_pMyDlg->Navigate("https://www.googole.com");
        m_pMyDlg->ShowWindow(SW_SHOW);
    }          
    VOID CMyManagerDlg::RemoveMyDlg()
    {
        m_pMyDlg->DestroyModeless();
        CoFreeUnusedLibraries();  // sol1
    }   
    void CMyDlg::PostNcDestroy()
    {
        delete this;   //sol2
        CDHtmlDialog::PostNcDestroy();
    }

标签: c++windowswinapimfc

解决方案


推荐阅读