MFC中CFileDialog的问题,困扰我好几周了,各位帮忙看看!!!!

trytochange 2014-09-19 04:07:47
我在一个程序里面用了CFileDialog类,用来加载文件。但是它会不定时的崩溃,有时候正常,有时候刚弹出文件对话框,闪一下就无故退出了。调试起来也特别不好弄,问题是不定时出现。网上说的方法我也都试过了,不起作用。有哪位知道,麻烦教一下我,不胜感激啊!!!!

应该不是我其他代码的原因,我重新开了一个工程,其他什么都没改,就添了以下代码,问题依旧;

void CtestMFCDlg::OnBnClickedOk()
{
// TODO: Add your control notification handler code here
//OnOK();
CFileDialog *pFileDlg = NULL;
TCHAR szFilters[] = _T("所有文件(*.*)|*.*||");

pFileDlg = new CFileDialog(TRUE, NULL, NULL, OFN_NOCHANGEDIR, szFilters, this);
if (pFileDlg != NULL)
{
pFileDlg->DoModal();
delete pFileDlg;
}
}
...全文
1087 17 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
向立天 2014-11-14
  • 打赏
  • 举报
回复
您好 我是本版版主 此帖已多日无人关注 请您及时结帖 如您认为问题没有解决可按无满意结帖处理 另外本版设置了疑难问题汇总帖 并已在版面置顶 相关规定其帖子中有说明 您可以根据规定提交您帖子的链接 如您目前不想结帖只需回帖说明 我们会删除此结帖通知 见此回复三日内无回应 我们将强制结帖 相关规定详见界面界面版关于版主结帖工作的具体办法
赵4老师 2014-11-14
  • 打赏
  • 举报
回复
检查是否资源泄漏的办法之一: 在任务管理器 进程 查看 选择列 里面选择:内存使用、虚拟内存大小、句柄数、线程数、USER对象、GDI对象 让你的程序(进程)不退出,循环执行主流程很多遍,越多越好,比如1000000次甚至无限循环,记录以上各数值,再隔至少一小时,越长越好,比如一个月,再记录以上各数值。如果以上两组数值的差较大或随时间流逝不断增加,则铁定有对应资源的资源泄漏!
蒋晟 2014-10-10
  • 打赏
  • 举报
回复
要new是因为MFC 6.0的bug,没有预估到Windows 2000会增加OPENFILENAME的大小 7.0以上版本的MFC不用new 基本上,如果Windows的资源管理器会崩溃的场合,文件对话框也经常会崩溃,所以要经常看是不是有KB2718841这样的补丁出来,或者是不是安装了Adobe PDF的文件预览插件。
HUSTYZHY 2014-09-22
  • 打赏
  • 举报
回复
trytochange 2014-09-22
  • 打赏
  • 举报
回复
引用 11 楼 cvbtvbwu 的回复:
没见人会new CFileDialog。。。。直接用CFileDialog dlg不行么。试试这个再说
我就是因为直接用出问题,然后有人说用new能解决,才这么做的,,,,
凌乱哥 2014-09-20
  • 打赏
  • 举报
回复
文件对话框是模态的,你用new和delete来搞就会有问题
叶恭介叶恭介 2014-09-19
  • 打赏
  • 举报
回复
没见人会new CFileDialog。。。。直接用CFileDialog dlg不行么。试试这个再说
trytochange 2014-09-19
  • 打赏
  • 举报
回复
引用 9 楼 arpnet99 的回复:
如果是VS2005的话,需要安装SP1的补丁
好吧,我试试
这不是鸭头 2014-09-19
  • 打赏
  • 举报
回复
如果是VS2005的话,需要安装SP1的补丁
trytochange 2014-09-19
  • 打赏
  • 举报
回复
引用 6 楼 wxhxj0268 的回复:
我这样做你这个,没发现问题

    CString szFilters = _T("所有文件(*.*)|*.*||");
	CFileDialog fileDlg(true, NULL, NULL, OFN_NOCHANGEDIR, szFilters, this);
	if(fileDlg.DoModal()!=IDOK)
	{
		// 操作完成
		return;
	}
你好,一开始我也是这么做的。不过老是出我说的那个问题。可能这个跟环境也有关吧。我在别的电脑上也试过,有的也基本不出问题的,,,苦恼中
trytochange 2014-09-19
  • 打赏
  • 举报
回复
引用 5 楼 happyparrot 的回复:
这个,我也不知道为什么,只是平时一直这么用,从来没出现过问题。 不过你这里确实不需要new,临时变量就可以了。 你的开发环境是什么?
我的环境是,windows server 2008 R2 + vs2005; 我先按你那样改试试。至少看着概率小了,,,。 另外,我是在网上看到有人说new了之后能解决问题,我才这么做的,不过不起作用
笨笨仔 2014-09-19
  • 打赏
  • 举报
回复
我这样做你这个,没发现问题

    CString szFilters = _T("所有文件(*.*)|*.*||");
	CFileDialog fileDlg(true, NULL, NULL, OFN_NOCHANGEDIR, szFilters, this);
	if(fileDlg.DoModal()!=IDOK)
	{
		// 操作完成
		return;
	}
快乐鹦鹉 2014-09-19
  • 打赏
  • 举报
回复
这个,我也不知道为什么,只是平时一直这么用,从来没出现过问题。 不过你这里确实不需要new,临时变量就可以了。 你的开发环境是什么?
trytochange 2014-09-19
  • 打赏
  • 举报
回复
引用 2 楼 xihu1364 的回复:
拿着你的代码,试试没有问题 看上去,也没啥问题... 有点小建议,既然new了,又delete了,为何不使用局部变量
你好,这个问题是不定时出现的,,,所以很苦恼,可能在别的电脑都不出现,,,。你可以帮忙分析一下一般会是啥原因,,,,,。另外,我的pFileDlg不是局部变量么,,,,
trytochange 2014-09-19
  • 打赏
  • 举报
回复
引用 1 楼 happyparrot 的回复:
你逐步修改调试,去找问题 CFileDialog fd(TRUE,"*.ZIP","",OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT,"ZIP文件|*.ZIP|",NULL); 你改成这样,看看还死不死
你好,我用你这个试了多次,没有出现问题。但也不能说是没问题了,因为本来就是不定时出现的,我想知道你这样写的理由是什么?最后一个参数的问题吗?谢谢!!!
版主大哥 2014-09-19
  • 打赏
  • 举报
回复
拿着你的代码,试试没有问题 看上去,也没啥问题... 有点小建议,既然new了,又delete了,为何不使用局部变量
快乐鹦鹉 2014-09-19
  • 打赏
  • 举报
回复
你逐步修改调试,去找问题 CFileDialog fd(TRUE,"*.ZIP","",OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT,"ZIP文件|*.ZIP|",NULL); 你改成这样,看看还死不死
内容概要:本文档详细介绍了基于布谷鸟搜索算法(CSO)优化长短期记忆网络(LSTM)进行时间序列预测的项目实例。项目旨在通过CSO自动优化LSTM的超参数,提升预测精度和模型稳定性,降低人工调参成本。文档涵盖了项目背景、目标与意义、挑战及解决方案、模型架构、代码实现、应用领域、注意事项、部署与应用、未来改进方向及总结。特别强调了CSO与LSTM结合的优势,如高效全局搜索、快速收敛、增强泛化能力等,并展示了项目在金融、气象、能源等多个领域的应用潜力。 适合人群:具备一定编程基础,特别是对MATLAB有一定了解的研发人员和技术爱好者。 使用场景及目标:①提高时间序列预测精度,减少误差;②降低人工调参的时间成本;③增强模型泛化能力,确保对未来数据的良好适应性;④拓展时间序列预测的应用范围,如金融市场预测、气象变化监测、工业设备故障预警等;⑤推动群体智能优化算法与深度学习的融合,探索复杂非线性系统的建模路径;⑥提升模型训练效率与稳定性,增强实际应用的可操作性。 阅读建议:此资源不仅包含详细的代码实现,还涉及模型设计、优化策略、结果评估等内容,因此建议读者在学习过程结合理论知识与实践操作,逐步理解CSO与LSTM的工作原理及其在时间序列预测的应用。此外,读者还可以通过多次实验验证模型的稳定性和可靠性,探索不同参数组合对预测效果的影响。
内容概要:本文详细介绍了ArkUI框架及其核心组件Button在鸿蒙应用开发的重要性。ArkUI框架作为鸿蒙系统应用界面的核心开发工具,提供了简洁自然的UI信息语法、多维状态管理和实时界面预览功能,支持多种布局方式和强大的绘制能力,满足了现代应用开发对于简洁性、高效性和灵活性的要求。Button组件作为ArkUI框架的重要组成部分,通过绑定onClick事件,实现了从简单的数据操作到复杂的业务流程处理,从页面间的无缝导航到各类功能的高效触发。此外,文章还探讨了Button组件在未来智能化、交互体验多样化以及跨设备应用的潜力和发展趋势。 适合人群:具备一定编程基础,尤其是对鸿蒙应用开发感兴趣的开发人员和设计师。 使用场景及目标:①理解ArkUI框架的基本特性和优势;②掌握Button组件的使用方法,包括基本绑定、复杂逻辑处理和事件传参;③熟悉Button组件在表单提交、页面导航和功能触发等场景下的具体应用;④展望Button组件在智能化、虚拟现实、增强现实和物联网等新兴技术的未来发展。 阅读建议:由于本文内容涵盖了从基础概念到高级应用的广泛主题,建议读者先了解ArkUI框架的基本特性,再逐步深入学习Button组件的具体使用方法。同时,结合实际案例进行实践操作,有助于更好地理解和掌握相关知识。

15,980

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧