VS2005下,创建了一个基于单文档的应用程序,
程序的功能都很正常,就在关闭主框架窗口的时候程序崩溃了
不知道为什么,大虾指导!谢谢了!

解决方案 »

  1.   

    http://www.vckbase.com/document/viewdoc/?id=1473
    通过崩溃地址找出源代码的出错行
      

  2.   

    多半是内存泄露
    用BoundsChecker试试吧
      

  3.   

    WM_CLOSE 的时候做调试,应该是没有释放资源引起的
      

  4.   

    退出的时候程序崩溃,最大的可能是进程的堆栈被破坏,这样在程序退出的时候进程自己无法正常的释放堆栈,只能崩溃。两种可能性比较大
    1、使用的指针操作了非法的地址,导致意外的破坏了堆栈的内容,通常在使用指针偏移时容易产生,或者用数组下标超出原本的大小。
    2、MFC中常见的另外一种,就是错误的构建了消息映射表,比如在CMainFrame的MessegeMap中使用了其他类的映射函数,或者函数类型是错误的,这种情况也会破坏进程的堆栈。
      

  5.   

    多半是指针问题
    debug看看
      

  6.   

    1.可能有内存泄漏,但内存泄漏绝对不会产生程序崩溃.如果内存泄漏能引起程序崩溃,那几乎每一个用C/C++写的程序退出时都应该崩溃.大型的C/C++程序或多或少都有一些内存泄漏.
    2.崩溃的几种常见情况:A.访问冲突,即访问了没有访问权限的地址.使用指针特别容易出现这个问题.B.堆栈被破坏.当出现写越界或者调用了定义与期望不相同的函数造成的(多见于函数指针).还有就是结构体对齐出现问题也会产生访问越界.其他情况14楼已经说了如果你是MFC程序.程序退出的时候.会调用基本的析构函数.MFC基类的析构一般不会出错的.检查一下你的析构函数是不是进行了额外的资源释放.而这些资源是否正常.比如,DEBGU版本释放一个野指针.
    另外:如果是主线程被结束.其他线程会自动被系统结束.只要其他线程要访问的资源没有被释放.其他线程也不会产生崩溃.最简单的方法:崩溃时,挂调试器.看调用堆栈.
    学C/C++。先学调试。