在程序退出时,发现CMyWinApp::ExitInstance函数根本就没有被调用!我是正常退出的,没有用Abort或Terminate等来强制中断主线程。CMainWnd::OnClose()调用了,一般OnClose之后就到ExitInstance了,但我的程序没有。为什么呢,请高手解疑!
我用了多线程,会有影响吗?

解决方案 »

  1.   

    ExitInstance一般作一些最后的析构操作,如果没有资源释放,可能容易造成资源泄漏
      

  2.   

    我知道你的问题在哪,你的程序一定有内存泄露,使用多线程就会这样的错误,慢慢找吧,万一不行,把代码发给我,我帮你调试[email protected]
      

  3.   

    如果你的某一个线程还保留在内存中,那么ExitInstance函数是不会调用的.你可以在每个线程退出的时候做个标记,然后看看是那个线程没有退出.
      

  4.   

    debug一下,看看CMyWinApp::theApp有没有被释放..
      

  5.   

    果然,CMyWinApp::theApp没有被释放!!!
    什么回事呢?
      

  6.   

    终于解决了,果然是其它多线程造成的,我的一个串口类在程序退出时没有关闭线程,关闭串口接收线程之后正常进入ExitInstance函数。
    多谢大家参与,放分!
    不过谁能解释一下这种现象的原因吗?
      

  7.   

    有可能多现成没有关闭如果没有关闭就不会调用EXITINSTANCE有可能会有内存泄露