c++ - 使用多个 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();
}
解决方案
推荐阅读
- php - jquery 运行良好,但为什么没有数据发布在 db 中?
- laravel - 如何在两列上设置唯一的验证规则
- python - cassandra cqlengine中的varchar列类型
- java - java -cp 选项似乎在 Java 14 中不起作用(已启用预览版)
- asp.net-core - Ef core 用 null 移除子元素
- android - Android ActionBar 高度使用自定义布局
- reactjs - Material UI:页面初始加载时闪烁(Razzle)
- python - 当线程和服务器崩溃时,recv 命令无法正常工作
- java - Java REST API GET 测试
- excel - VBA宏调用函数而没有代码指定它