关于Qt退出码255的一点总结

Qt程序退出码255

先说症状,程序运行正常,但是在关闭程序时,却出现的异常,提示退出码为255。查看了一翻代码,也没有找到有什么问题,百度上也没找到有效的解决方法。后来偶然发现了问题所在,原因是在析构函数中,先删除了父窗体指针,再删除子窗体指针引起的。这算是一个低级问题了。调整删除指针的顺序后,程序欢快的结束了。

#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QMainWindow>
#include <QPushButton>

class MainWindow : public QMainWindow
{
    Q_OBJECT

public:
    MainWindow(QWidget *parent = 0);
    ~MainWindow();

private:
    QPushButton * btn1;
    QPushButton * btn2;
};

#endif // MAINWINDOW_H

//----

#include "mainwindow.h"

MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent)
{
    btn1 = new QPushButton(this);
    btn2 = new QPushButton(btn1);
}

MainWindow::~MainWindow()
{
    delete btn1;  // 先删除父类
    delete btn2;  // 再删除子类,退出码为255
}

只需要调整一下delete的顺序,
delete btn2;
delete btn1;

OK,程序正常结束,退出码为0

时间: 2024-09-19 07:03:17

关于Qt退出码255的一点总结的相关文章

exit(-1)或者return(-1)shell得到的退出码为什么是255_linux shell

下面我写了一个hello world程序,一起看看吧: // filename: main.c #include <stdio.h> int main(void) { printf("hello wolrd!\n"); return(-); } 编译执行:gcc main.c && ./a.out 现在我们看看在当前shell中返回上一个执行过程的返回值是多少,是 "-1" 吗? inuyasha@inuyasha-Aspire-4741

查看和调试Qt源码

简述 在调试程序的时候,有时需要调试进入 Qt 源码,这不仅有利于我们了解内部实现机制,而且对于解决一些隐蔽性问题很有帮助. 都知道 F11 是"单步进入",可是在调试的过程中,按下 F11 却无法进入.有人说需要静态编译 Qt 才可以,其实不然,只需要简单的几个配置就可以搞定. 简述 Qt 版本及安装 配置 Qt Creator 源码调试 更多参考 版权所有:一去丶二三里,转载请注明出处:http://blog.csdn.net/liang19890820 Qt 版本及安装 Qt 针

WAS启动 Queue Manager 命令失败,退出码:2(急急急)

问题描述 [08-8-717:28:11:000CST]3adbdb96ManagerAdminITRAS0017I:启动跟踪状态是*=all=disabled.[08-8-717:28:12:125CST]3adbdb96AdminInitialiAADMN0015I:AdminService初始化[08-8-717:28:13:781CST]3adbdb96ConfigurationASECJ0215I:成功地将JAAS登录提供程序配置类设置为com.ibm.ws.security.auth

git不能完全退出(退出码128或1)解决办法

git 错误代码128或1,git 安装后,使用tortoisegit 或者命令 git pull的时候报错.如图:    git pull无法下载代码 是因为你的ssh client的问题,使用ssh链接不上 解决办法: 当前项目右键-> TortoiseGit -> Settings -> Network SSH client 设置  C:\Program Files\TortoiseGit\bin\TortoisePlink.exe 改成 C:\Program Files (x86

关于编译Qt以及驱动的一点总结吧

通过这几次的折腾,对编译Qt算是有一点的心得吧: 首先我们编译QT的时候需要面对的是下载源代码,一般情况下我们建议下载qt-everywhere-opensource-src-4.8.2.zip这种形式的源代码.这样编译起来的问题也就很少了.当然如果人品不行的话,还是会出现很多的问题的. 其次是选择动态编译还是静态编译,默认是动态的,我之前一直打算采用静态编译的,这样分发程序的时候很简单,但是在静态编译的时候出现许多的问题,导致我来来回回编译了几次. 关于静态编译请参看:这篇文章 文章中是使用v

Qt Project源码结构分析

在网上阅读了QT入门教程系列文章,感谢豆豆博客的版主,把这么好的教程和大家分享,本文是对入门教程的笔记,以期抛砖引玉,听到大家的好见解. 希望大家更好更快的学习QT,达到自己的目标,实现自己的理想. 本文分析QT项目的结构,如头文件中代码的结构与功效,主源代码文件的结构与功效.也就是说头文件中应该放些什么,源代码文件中放些什么. 先看一个经典的例子,头文件: #ifndef FINDDIALOG_H #define FINDDIALOG_H #include <QtGui/QDialog> c

子进程及时知道父进程已经退出的最简单方案

  [精彩] 子进程及时知道父进程已经退出的最简单方案? http://www.chinaunix.net 作者:yuonunix  发表于:2003-10-31 10:14:14 [发表评论] [查看原文] [C/C++讨论区][关闭] 要父进程知道子进程退出,这太容易了,但是要子进程知道父进程退出,可有点麻烦.       父进程如果退出,子进程如何知道呢,最笨的方法,父子进程之间建立socket连接,然后建立心跳,没隔1秒测试一把,当然太笨了,通过管道,可以吗?如何做?有更加简单的方法吗?

【原创】遇到一个 rabbitmqctl 无法退出的问题

      这两天又遇到了一个奇怪的问题:简单的说,就是在 vmware 通过 rabbitmq 的 init 脚本无法正常 stop 掉相应的进程(实际上调用的是 rabbitmqctl stop <pidfile> ).  问题表现 确认 RabbitMQ 的运行状态和对应的 pid 文件内容  [root@gfsd1 ~]# [root@gfsd1 ~]# ps aux|grep rabbit root 11813 0.0 0.0 106368 1004 pts/2 S 19:21 0:

Ubuntu Docker 源码编译(1.9.1 )详解_docker

Ubuntu Docker 源码编译:              网上对Ubuntu Docker 源码编译的资料有很多,但是对于具体如何操作,和命令的实现不是多细致,经过我一番折腾,终于把源码编译搞定,这里记录下,以便以后使用参考, 一.系统环境        Ubuntu14.04 desktop 64位 二.安装Docker(Docker内编译Docker) $ sudo apt-get update  $ sudo apt-get install wget  $ wget -qO- ht