Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > С/С++: Кроссплатформенное программирование, Qt/Gtk+/wxWidgets > QDeclarativeView: app crash


Автор: Acer 26.7.2012, 18:42
Привет. Есть такой класс:

Код

class MainWindow
    : public QMainWindow
{
    Q_OBJECT

public:
    MainWindow();
    virtual ~MainWindow();

public:
    bool Initialize();

protected:
    virtual void resizeEvent(QResizeEvent* pEvent) override;

private:
    QDeclarativeView* iView;
    QDeclarativeItem* iItem;
};



Если вызвать оператор new для iView, то при закрытии главного окна приложение крашится.
Конструктор выглядит так:

Код

MainWindow::MainWindow()
    : QMainWindow(),
      iView( nullptr ),
      iItem( nullptr )
{
    iView = new QDeclarativeView( this );
}


Крашится в деструкторе QCoreApplicationPrivate.

Вот колстек

Код

    QtCored4.dll!QCoreApplicationPrivate::~QCoreApplicationPrivate()  Line 439 + 0x9 bytes    C++
    QtGuid4.dll!QApplicationPrivate::~QApplicationPrivate()  Line 223 + 0xcd bytes    C++
    QtGuid4.dll!QApplicationPrivate::`vector deleting destructor'()  + 0x50 bytes    C++
    QtCored4.dll!QScopedPointerDeleter<QObjectData>::cleanup(QObjectData * pointer=0x00425eb8)  Line 62 + 0x20 bytes    C++
    QtCored4.dll!QScopedPointer<QObjectData,QScopedPointerDeleter<QObjectData> >::~QScopedPointer<QObjectData,QScopedPointerDeleter<QObjectData> >()  Line 100 + 0x9 bytes    C++
    QtCored4.dll!QObject::~QObject()  Line 940 + 0x12 bytes    C++
    QtCored4.dll!QCoreApplication::~QCoreApplication()  Line 831 + 0xf bytes    C++
    QtGuid4.dll!QApplication::~QApplication()  Line 1219 + 0x13 bytes    C++
    app.exe!QApplication::`scalar deleting destructor'()  + 0x10 bytes    C++
    app.exe!Application::Destroy()  Line 76 + 0x24 bytes    C++
    app.exe!Application::Quit()  Line 40    C++


Не могу понять, почему оно крашится.
MainWindow находится в отдельной библиотеке. Отдельно от исполняемого файла.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)