窗口关闭时候,程序崩溃了 VS2005下,创建了一个基于单文档的应用程序,程序的功能都很正常,就在关闭主框架窗口的时候程序崩溃了不知道为什么,大虾指导!谢谢了! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 http://www.vckbase.com/document/viewdoc/?id=1473通过崩溃地址找出源代码的出错行 多半是内存泄露用BoundsChecker试试吧 WM_CLOSE 的时候做调试,应该是没有释放资源引起的 退出的时候程序崩溃,最大的可能是进程的堆栈被破坏,这样在程序退出的时候进程自己无法正常的释放堆栈,只能崩溃。两种可能性比较大1、使用的指针操作了非法的地址,导致意外的破坏了堆栈的内容,通常在使用指针偏移时容易产生,或者用数组下标超出原本的大小。2、MFC中常见的另外一种,就是错误的构建了消息映射表,比如在CMainFrame的MessegeMap中使用了其他类的映射函数,或者函数类型是错误的,这种情况也会破坏进程的堆栈。 多半是指针问题debug看看 1.可能有内存泄漏,但内存泄漏绝对不会产生程序崩溃.如果内存泄漏能引起程序崩溃,那几乎每一个用C/C++写的程序退出时都应该崩溃.大型的C/C++程序或多或少都有一些内存泄漏.2.崩溃的几种常见情况:A.访问冲突,即访问了没有访问权限的地址.使用指针特别容易出现这个问题.B.堆栈被破坏.当出现写越界或者调用了定义与期望不相同的函数造成的(多见于函数指针).还有就是结构体对齐出现问题也会产生访问越界.其他情况14楼已经说了如果你是MFC程序.程序退出的时候.会调用基本的析构函数.MFC基类的析构一般不会出错的.检查一下你的析构函数是不是进行了额外的资源释放.而这些资源是否正常.比如,DEBGU版本释放一个野指针.另外:如果是主线程被结束.其他线程会自动被系统结束.只要其他线程要访问的资源没有被释放.其他线程也不会产生崩溃.最简单的方法:崩溃时,挂调试器.看调用堆栈.学C/C++。先学调试。 图像提取光条中心 继承了一个CWND的类,并且在其中动态创建一个控件,为什么会没有反应 求仓库最优采购算法! 发送用send函数,接收用recv函数,请问网络出现问题时会返回什么结果? 用VC如何读取PCI总线上的数据,请高手指点! 如何捕捉键盘按键时间(不用定时器) 初学者求好书 望指导 为什么 InstallShield 加入了文件连接后运行起来是仍个空壳? 怎样关掉别的程序弹出的对话框窗口呢? 用vc开发数据库有什么可取之处吗? 来接活啦……数字水印相关 连上VPN后发包的问题!
通过崩溃地址找出源代码的出错行
用BoundsChecker试试吧
1、使用的指针操作了非法的地址,导致意外的破坏了堆栈的内容,通常在使用指针偏移时容易产生,或者用数组下标超出原本的大小。
2、MFC中常见的另外一种,就是错误的构建了消息映射表,比如在CMainFrame的MessegeMap中使用了其他类的映射函数,或者函数类型是错误的,这种情况也会破坏进程的堆栈。
debug看看
2.崩溃的几种常见情况:A.访问冲突,即访问了没有访问权限的地址.使用指针特别容易出现这个问题.B.堆栈被破坏.当出现写越界或者调用了定义与期望不相同的函数造成的(多见于函数指针).还有就是结构体对齐出现问题也会产生访问越界.其他情况14楼已经说了如果你是MFC程序.程序退出的时候.会调用基本的析构函数.MFC基类的析构一般不会出错的.检查一下你的析构函数是不是进行了额外的资源释放.而这些资源是否正常.比如,DEBGU版本释放一个野指针.
另外:如果是主线程被结束.其他线程会自动被系统结束.只要其他线程要访问的资源没有被释放.其他线程也不会产生崩溃.最简单的方法:崩溃时,挂调试器.看调用堆栈.
学C/C++。先学调试。