模态对话框消息循环中出现问题了

ssh6668ssh 2010-01-22 02:23:42
NTDLL! 7c92120e()
_CrtDbgReport(int 2, const char * 0x5f8d3ce8 THIS_FILE, int 374, const char * 0x00000000, const char * 0x00000000) line 353
AfxAssertFailedLine(const char * 0x5f8d3ce8 THIS_FILE, int 374) line 39 + 20 bytes
AfxWndProc(HWND__ * 0x001f0798, unsigned int 132, unsigned int 0, long 48169119) line 374 + 21 bytes
AfxWndProcBase(HWND__ * 0x001f0798, unsigned int 132, unsigned int 0, long 48169119) line 220 + 21 bytes
USER32! 77d18709()
USER32! 77d187eb()
USER32! 77d1b368()
USER32! 77d1b3b4()
NTDLL! 7c92e473()
USER32! 77d193df()
USER32! 77d3e92b()
USER32! 77d2688a()
USER32! 77d3b7c5()
USER32! 77d3b12b()
USER32! 77d65fdf()
USER32! 77d66084()
USER32! 77d50598()
USER32! 77d50550()
__crtMessageBoxA(const char * 0x00125fb8, const char * 0x003e79a0 `string', unsigned int 73746) line 65
CrtMessageWindow(int 2, const char * 0x5f8d3ce8 THIS_FILE, const char * 0x001270ec, const char * 0x00000000, const char * 0x00129110) line 520 + 22 bytes
_CrtDbgReport(int 2, const char * 0x5f8d3ce8 THIS_FILE, int 374, const char * 0x00000000, const char * 0x00000000) line 419 + 76 bytes
AfxAssertFailedLine(const char * 0x5f8d3ce8 THIS_FILE, int 374) line 39 + 20 bytes
AfxWndProc(HWND__ * 0x001f0798, unsigned int 132, unsigned int 0, long 48169119) line 374 + 21 bytes
AfxWndProcBase(HWND__ * 0x001f0798, unsigned int 132, unsigned int 0, long 48169119) line 220 + 21 bytes
USER32! 77d18709()
USER32! 77d187eb()
USER32! 77d1b368()
USER32! 77d1b3b4()
NTDLL! 7c92e473()
CWinThread::PumpMessage() line 821 + 19 bytes
CWnd::RunModalLoop(unsigned long 4) line 3489 + 19 bytes
CDialog::DoModal() line 539 + 12 bytes


模态对话框消息循环中出现问题了
程序挂掉,
请问是什么原因呀
...全文
221 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
xwsn007 2010-02-13
  • 打赏
  • 举报
回复
不要在对话框的代码里SetTimer,给主窗口post一个自定义消息,由主窗口响应此消息时SetTimer
ssh6668ssh 2010-01-28
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 sjdev 的回复:]
引用 12 楼 ssh6668ssh 的回复:
对话框EndDialog
在我的程序不是按确定或者取消
而是我用SetTimer()来设置的
大家觉得会有问题吗


使用SetTimer,EndDialog()?

贴出些代码吧。

[/Quote]
我就是SetTimer(),然后
EndDialog()
就出现上面的问题了
IcyPlayer 2010-01-25
  • 打赏
  • 举报
回复
_BLOCK_TYPE_IS_VALID是重复释放内存、或者释放无效内存区域造成的

比如:

char *szString = new char[1024];
szString += 100;
delete [] szString;
sjdev 2010-01-25
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 ssh6668ssh 的回复:]
对话框EndDialog
在我的程序不是按确定或者取消
而是我用SetTimer()来设置的
大家觉得会有问题吗
[/Quote]

使用SetTimer,EndDialog()?

贴出些代码吧。
ssh6668ssh 2010-01-22
  • 打赏
  • 举报
回复

对话框EndDialog
在我的程序不是按确定或者取消
而是我用SetTimer()来设置的
大家觉得会有问题吗
marrco2005 2010-01-22
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 ssh6668ssh 的回复:]
现在这个问题不好解决
程序当掉很随机,编译阶段没有问题
程序运行时 偶尔会当机
我自己觉得问题在模态对话框消息循环这里
模态对话框消息循环没有结束(对话框没有EndDialog的时候就挂掉了)
[/Quote]
问题肯定不是出在模态对话框消息循环这里,和这个没关系
ssh6668ssh 2010-01-22
  • 打赏
  • 举报
回复
现在这个问题不好解决
程序当掉很随机,编译阶段没有问题
程序运行时 偶尔会当机
我自己觉得问题在模态对话框消息循环这里
模态对话框消息循环没有结束(对话框没有EndDialog的时候就挂掉了)
快乐鹦鹉 2010-01-22
  • 打赏
  • 举报
回复
如果你正打开某个对话框的话,那么检查一下对话框的初始化函数,是否有特殊的控件等等
ndy_w 2010-01-22
  • 打赏
  • 举报
回复
应该不是消息,而是内存分配的问题
ssh6668ssh 2010-01-22
  • 打赏
  • 举报
回复
错误时弹出的窗口内容是
Debug Assertion Failed!

Expression: _BLOCK_TYPE_IS_VALID(pHead->nBlockUse)
ProgrammerNO1 2010-01-22
  • 打赏
  • 举报
回复
错误信息是啥
marrco2005 2010-01-22
  • 打赏
  • 举报
回复
先将OnInitDialog 函数中的代码注掉, 逐步排查错误
快乐鹦鹉 2010-01-22
  • 打赏
  • 举报
回复
错误时弹出的窗口内容是什么?
ssh6668ssh 2010-01-22
  • 打赏
  • 举报
回复
我的环境 是vc6.0
sjdev 2010-01-22
  • 打赏
  • 举报
回复
先说说你的运行环境吧。
c_s0001 2010-01-22
  • 打赏
  • 举报
回复
屏掉初始化代码,来确定出错位置

16,471

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

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