首页 新闻 会员 周边 捐助

资源貌似泄露了,Create 和 DestroyWindow的问题

0
悬赏园豆:200 [已关闭问题]

CDialog *dlg;
 for(long i=0;i<1;i++)
 {
  dlg = new CTestDlg(); // 普通对话框类,什么也没有修改,也没添加任何东西
  dlg->Create(CTestDlg::IDD,this);
  dlg->SetDlgCtrlID(CTestDlg::IDD);
  
  dlg->DestroyWindow();
  delete dlg;
 }

 

///  运行过程中,任务管理器中,程序占用的内存不断增大,求解!!!!!!!!!

烟酒咖啡茶的主页 烟酒咖啡茶 | 初学一级 | 园豆:0
提问于:2010-07-16 09:24
< >
分享
其他回答(1)
0

你的这段代码是在 CTestDlg 某个方法中运行的吗?

Launcher | 园豆:45050 (高人七级) | 2010-07-16 09:54
不是,是在其他地方调用的。
支持(0) 反对(0) 烟酒咖啡茶 | 园豆:0 (初学一级) | 2010-07-16 09:55
@曾灿:用 dlg->CloseWindow(); 替换 DestoryWindow
支持(0) 反对(0) Launcher | 园豆:45050 (高人七级) | 2010-07-16 10:19
@Galactica:To destroy a window, an application must use the DestroyWindow function.
支持(0) 反对(0) 烟酒咖啡茶 | 园豆:0 (初学一级) | 2010-07-16 11:32
@曾灿:的确是内存不断增大,但是并没有出现泄漏;你可以使用不使用资源文件的方法创建非模态对话框,这样可以绕过你遇到的内存不断增大的问题。
支持(0) 反对(0) Launcher | 园豆:45050 (高人七级) | 2010-07-16 20:39
@Galactica:我现在做的项目中,如果不使用资源文件的话,代码量太大了,对话框极多。 起始内存增大也不是很厉害,反复10万次,也就1、2M的样子。
支持(0) 反对(0) 烟酒咖啡茶 | 园豆:0 (初学一级) | 2010-07-20 12:29
0

习惯不好呀

CDialog *dlg = NULL;

if(dlg != NULL)

delete dlg;

左手程序右手诗 | 园豆:82 (初学一级) | 2010-07-20 00:48
只说明问题,不谈习惯。
支持(0) 反对(0) 烟酒咖啡茶 | 园豆:0 (初学一级) | 2010-07-20 12:27
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册