文件对话框 招致的内存增大
如题,MFC中打开文件对话框后,使得内存增加了好几千。这里只是打开了文件对话框,还没有进行任何操作。直接关闭文件对话框,增加的内存也米有降低。
这该怎么办呢?
代码如下:
TCHAR szFilter[] = _T("Excel文件(*.xls)|*.xls");
CFileDialog fileDlg(FALSE, _T("xls"), _T("only English"), OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT, szFilter, this);
// 显示保存文件对话框
if (IDOK == fileDlg.DoModal())
{
// 如果点击了文件对话框上的“保存”按钮,则将选择的文件路径显示到编辑框里
strFilePath = fileDlg.GetPathName();
}
------解决思路----------------------
你可以试试再打开,是否会持续增长
增长一下的话,是很正常的
毕竟你新开了一个窗体,要为这个窗体分配内存
不会立即释放也是正常现象.
你需要测试的是,
1.连续不断打开这个窗体,会不会持续增长,还是再打开就稳定了?
2.过一分钟再看,内存降下去了没有,还是永远不下降?
------解决思路----------------------
FileDialog 调用的是windows预设的窗体吧?..
增长内存应该算比较正常啊..你这个增长量 应该还算正常吧..毕竟FileDialog不是你设计的简单窗体..
------解决思路----------------------
於黾大神已经解释了这个问题..这个FileDialog是在windows中经常要用到的窗体...优化后的结果就是并未释放..以免下次申请内存降低效率..
------解决思路----------------------
你可以看VS的调试信息,估计在显示这个对话框前,加载了好多dll