我加了一个我自己编译的静态库,结果导致我的mfc程序在debug时运行完onclose后无法退出
此时堆栈情况如下:> user32.dll!77d18734() 
  [Frames below may be incorrect and/or missing, no symbols loaded for user32.dll]
  user32.dll!77d2bdf1() 
  user32.dll!77d28ea0() 
  user32.dll!77d2b16f() 
  ntdll.dll!7c92e453() 
  user32.dll!77d2b1a8() 
  mfc80d.dll!CWnd::DestroyWindow()  Line 993 + 0xd bytes C++
  mfc80d.dll!CFrameWnd::OnClose()  Line 849 C++我试了一个简单的静态库,发现没有问题。
而我用另一个使用share MFC dll的.exe工程调用这个静态库,也没有问题,
现在我不太确定到底是.exe的问题还是.lib的问题,不知道谁有什么好方法?多谢

解决方案 »

  1.   

    1. release
    没有问题不表明真正没有问题
    问题可能是潜在存在,只不过没有表现出来2. onclose后无法退出 
    是指什么?
    出现了assert failed?
    要具体分析,比如可能是double free或者是野指针,
    例如你在OnClose中delete了一个指针,但是没有把这个指针置为null,
    在DestroyWindow中再一次delete这个指针时就会出问题
      

  2.   

    onclose后按F5程序一直悬挂在那,不会退出,也不会有什么反应。
    或者编译好的.exe双击运行,再点击右上角的X关闭,程序GUI结束,没有问题,但在进城中看到这个.exe还存在。
    应该与我说的静态库有关,我只要不要我说的库的函数就一切ok
      

  3.   

    那你在程序主窗口的 OnNcDestroy 下个断点,看看能不能走到这个断点这里