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);