社区
进程/线程/DLL
帖子详情
dll中无模态对话框销毁问题,不解
edisonli
2008-07-28 01:22:40
dll中使用以下代码,报错“内存不能为read”,不知道是不是销毁的方式有问题呢!
void CUpdateDlg::OnClose()
{
// TODO: Add your message handler code here and/or call default
DestroyWindow();
CDialog::OnClose();
}
...全文
177
21
打赏
收藏
dll中无模态对话框销毁问题,不解
dll中使用以下代码,报错“内存不能为read”,不知道是不是销毁的方式有问题呢! void CUpdateDlg::OnClose() { // TODO: Add your message handler code here and/or call default DestroyWindow(); CDialog::OnClose(); }
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
21 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
edisonli
2008-07-28
打赏
举报
回复
晕,终于知道什么原因了,原来是dll加载后没有释放
cnzdgs
2008-07-28
打赏
举报
回复
“重新打开对话框”是怎么打开?已经delete的对象就不存在了,再使用要重新new。
edisonli
2008-07-28
打赏
举报
回复
啊啊,郁闷啊
要是不加PostQuitMessage的话,可以关闭,但是重新打开对话框就会出错的,
liyinlei
2008-07-28
打赏
举报
回复
对非模式对话框,需要重载OnCancel 和 OnOK 方法,里面只要调用DestroyWindow();
如果想把new出来的dlg类对象在窗口关闭后自动释放掉,则再重载PostNcDestroy函数,调用delete this,也可以不重载这个函数,手动来控制dlg类对象
cnzdgs
2008-07-28
打赏
举报
回复
PostQuitMessage是你打算退出消息循环时才需要的,如果还有其它窗口不想退出,就不要加这行代码了。
edisonli
2008-07-28
打赏
举报
回复
按照cnzdgs的方法,连主程序一起关闭了
LRESULT CUpdateDlg::WindowProc(UINT message, WPARAM wParam, LPARAM lParam)
{
switch(message)
{
....
case WM_DESTROY:
PostQuitMessage(0);
break;
}
}
void CUpdateDlg::PostNcDestroy()
{
// TODO: Add your specialized code here and/or call the base class
CDialog::PostNcDestroy();
delete this;
}
void CUpdateDlg::OnClose()
{
// TODO: Add your message handler code here and/or call default
CDialog::OnClose();
DestroyWindow();
}
cnzdgs
2008-07-28
打赏
举报
回复
有可能。如果你按照13楼的做法来做,不添加其它代码,是不会有问题的。
edisonli
2008-07-28
打赏
举报
回复
cnzdgs:是不是我重载了WindowProc的原因呢,给出一个代码吧,刚接触vc,有很多东西不理解
cnzdgs
2008-07-28
打赏
举报
回复
DestroyWindow会产生很多消息,看看你是不是响应了其它相关消息或者重载了相关函数。
如果是用new构造的非模态对话框,通常的做法是:
响应WM_CLOSE消息,执行DestroyWindow;重载PostNcDestroy函数,delete this;如果需要退出消息循环,则响应WM_DESTROY消息,PostQuitMessage。
edisonli
2008-07-28
打赏
举报
回复
正式线程没有结束的原因。但是还是有问题的,关闭是销毁了对话框,但是在打开的时候就afxwin2.inl 错误
sking2008
2008-07-28
打赏
举报
回复
OnNcDestroy
edisonli
2008-07-28
打赏
举报
回复
我是在导出函数中创建的,我需要对话框自销毁,怎么能在导出函数中销毁呢
不过,我调试了一下,我在对话框中建了一个线程,不知道是不是线程没有结束出的问题
怎样才能在销毁时判断线程结束没有呢
Allen_zhang
2008-07-28
打赏
举报
回复
销毁的位置不对
在哪里创建就在那里销毁
edisonli
2008-07-28
打赏
举报
回复
DestroyWindow();
就是这个出的错,去掉这个就没问题,但是对话框不能真正的销毁
edisonli
2008-07-28
打赏
举报
回复
不正确啊
重载OnNcDestroy和CDialog::OnClose(); 注释掉。 都不行
我的对话框是CUpdateDlg *uDlg;uDlg = new CUpdateDlg();出来的
cnzdgs
2008-07-28
打赏
举报
回复
OnClose就是要这样写,估计你还在其它地方做了处理,你调试运行程序,出错时看调用堆栈中的信息,找出引起错误的代码。
zhoujianhei
2008-07-28
打赏
举报
回复
将
void CUpdateDlg::OnClose()
{
// TODO: Add your message handler code here and/or call default
DestroyWindow();
//CDialog::OnClose();
}
CDialog::OnClose(); 注释掉。
zhoujianhei
2008-07-28
打赏
举报
回复
OnNcDestroy
{
delete this;
}
重载OnNcDestroy,并注释掉原来的调用。
edisonli
2008-07-28
打赏
举报
回复
先CDialog::OnClose();
再DestroyWindow();
还是不行
DestroyWindow(); 会被主动调用?应该没有的,关闭对话框后,重新打开,看到对话框中的进度条还在继续走
thirddata
2008-07-28
打赏
举报
回复
DestroyWindow(); 会被主动调用,不需要你显式的这样调用,即使想显示的调用,最好判断一下m_hWnd是否为NULL,如果为NULL,说明DestroyWindow(); 已经调用过了
加载更多回复(1)
MFC调用
DLL
文件
中
的
对话框
.非
模
态
形式
调用
DLL
文件
中
的
对话框
_一个
DLL
的能成功_一个
DLL
不能成功
Dll
DialogTest VS2010写的 一个基于
对话框
的MFC程序 然后创建两个常规动
态
DLL
文件 在
DLL
文件
中
分别添加
对话框
一个
DLL
的
对话框
能正常调用 另一个不行 均为非
模
态
调用.... C++
cocos2d-x
中
模
态
对话框
的简单实现
cocos2d-x
中
模
态
对话框
的简单实现
MultiDialog.zip
基于多
对话框
的MFC工程.避免
模
态
对话框
中
产生新的
模
态
对话框
.
鸡啄米:VS2010-MFC编程入门教程(1-55).docx
一、VS2010/MFC编程入门教程之目录 第一部分:VS2010/MFC开发环境 VS2010/MFC编程入门之前言 VS2010/MFC编程入门之一(VS2010与MSDN安装过程图解) 第二部分:VS2010/MFC应用程序框架 VS2010/MFC编程入门之二(利用MFC向导生成单文档应用程序框架) VS2010/MFC编程入门之三(VS2010应用程序工程
中
文件的组成结构) VS2010/MFC编程入门之四(MFC应用程序框架分析) VS2010/MFC编程入门之五(MFC消息映射机制概述) 第三部分:
对话框
VS2010/MFC编程入门之六(
对话框
:创建
对话框
模
板和修改
对话框
属性) VS2010/MFC编程入门之七(
对话框
:为
对话框
添加控件) VS2010/MFC编程入门之八(
对话框
:创建
对话框
类和添加控件变量) VS2010/MFC编程入门之九(
对话框
:为控件添加消息处理函数) VS2010/MFC编程入门之十(
对话框
:设置
对话框
控件的Tab顺序) VS2010/MFC编程入门之十一(
对话框
:
模
态
对话框
及其弹出过程) VS2010/MFC编程入门之十二(
对话框
:非
模
态
对话框
的创建及显示) VS2010/MFC编程入门之十三(
对话框
:属性页
对话框
及相关类的介绍) VS2010/MFC编程入门之十四(
对话框
:向导
对话框
的创建及显示) VS2010/MFC编程入门之十五(
对话框
:一般属性页
对话框
的创建及显示) VS2010/MFC编程入门之十六(
对话框
:消息
对话框
) VS2010/MFC编程入门之十七(
对话框
:文件
对话框
) VS2010/MFC编程入门之十八(
对话框
:字体
对话框
) VS2010/MFC编程入门之十九(
对话框
:颜色
对话框
) 第四部分:常用控件 VS2010/MFC编程入门之二十(常用控件:静
态
文本框) VS2010/MFC编程入门之二十一(常用控件:编辑框Edit Control) VS2010/MFC编程入门之二十二(常用控件:按钮控件Button、Radio Button和Check Box) VS2010/MFC编程入门之二十三(常用控件:按钮控件的编程实例) VS2010/MFC编程入门之二十四(常用控件:列表框控件ListBox) VS2010/MFC编程入门之二十五(常用控件:组合框控件Combo Box) VS2010/MFC编程入门之二十六(常用控件:滚动条控件Scroll Bar) VS2010/MFC编程入门之二十七(常用控件:图片控件Picture Control) VS2010/MFC编程入门之二十八(常用控件:列表视图控件List Control 上) VS2010/MFC编程入门之二十九(常用控件:列表视图控件List Control 下) VS2010/MFC编程入门之三十(常用控件:树形控件Tree Control 上) VS2010/MFC编程入门之三十一(常用控件:树形控件Tree Control 下) VS2010/MFC编程入门之三十二(常用控件:标签控件Tab Control 上) VS2010/MFC编程入门之三十三(常用控件:标签控件Tab Control 下) 第五部分:菜单、工具栏与状
态
栏 VS2010/MFC编程入门之三十四(菜单:VS2010菜单资源详解) VS2010/MFC编程入门之三十五(菜单:菜单及CMenu类的使用) VS2010/MFC编程入门之三十六(工具栏:工具栏资源及CToolBar类) VS2010/MFC编程入门之三十七(工具栏:工具栏的创建、停靠与使用) VS2010/MFC编程入门之三十八(状
态
栏的使用详解) 第六部分:文档、视图和框架 VS2010/MFC编程入门之三十九(文档、视图和框架:概述) VS2010/MFC编程入门之四十(文档、视图和框架:各对象之间的关系) VS2010/MFC编程入门之四十一(文档、视图和框架:分割窗口) 第七部分:MFC常用类 VS2010/MFC编程入门之四十二(MFC常用类:CString类) VS2010/MFC编程入门之四十三(MFC常用类:CTime类和CTimeSpan类) VS2010/MFC编程入门之四十四(MFC常用类:定时器Timer) VS2010/MFC编程入门之四十五(MFC常用类:CFile文件操作类) VS2010/MFC编程入门之四十六(MFC常用类:MFC异常处理) 第八部分:字体和文本输出 VS2010/MFC编程入门之四十七(字体和文本输出:CFont字体类) VS2010/MFC编程入门之四十八(字体和文本输出:文本输出) 第九部分:图形图像 VS2010/MFC编程入门之四十九(图形图像:CDC类及其屏幕绘图函数) VS2010/MFC编程入门之五十(图形图像:GDI对象之画笔CPen) VS2010/MFC编程入门之五十一(图形图像:GDI对象之画刷CBrush) 第十部分:Ribbon界面开发 VS2010/MFC编程入门之五十二(Ribbon界面开发:创建Ribbon样式的应用程序框架) VS2010/MFC编程入门之五十三(Ribbon界面开发:为Ribbon Bar添加控件) VS2010/MFC编程入门之五十四(Ribbon界面开发:使用更多控件并为控件添加消息处理函数) 本文来源于鸡啄米 http://www.jizhuomi.com/ , 原文地址:http://www.jizhuomi.com/software/257.html
VS2010基于
对话框
的MFC串口通信简明例程(源码)
VS2010基于
对话框
的MFC串口通信简明例程的源码,内涵一个虚拟串口软件。
进程/线程/DLL
15,467
社区成员
49,171
社区内容
发帖
与我相关
我的任务
进程/线程/DLL
VC/MFC 进程/线程/DLL
复制链接
扫一扫
分享
社区描述
VC/MFC 进程/线程/DLL
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章