Qt程序在debug和release下都可以正常運行;並且發佈的release也可以運行;但是在點擊關閉按鍵的時候,MainWindow會進入到析構函數中,然後會蹦出對話框,並提示如下錯誤:
Signal received
The inferior stopped because it received a signal from the Operating System.
Signal name : SIGSEGV
Signal meaning : Segmentation fault
通過調試跟蹤觀察,發現提示是安裝文件下的QBoxLayoutItem::~QBoxLayoutItem()出錯,這是系統的函數,怎麼可能呢?
通過網上搜索,一般都是提示是由於指針沒有初始化,出現野指針;或者數組越界等;我查看程序沒有找到問題所在呀,並且是在MainWinwod析構函數過後出現的?
調試過程省略,
後來解決方法是:在關閉函數 中直接調用TerminateProcess()解決;
HANDLE hDll = GetCurrentProcess();
TerminateProcess(hDll, 0);
或者直接:TerminateProcess(GetCurrentProcess(), 0);