Необработанное исключение Qt4.8.1 в QMdiArea::addSubwindow

Я скомпилировал Qt 4.8.1 с помощью следующих инструкций: http://www.holoborodko.com/pavel/2011/02/01/how-to-compile-qt-4-7-with-visual-studio-2010/

для моей системы (Visual Studio 2010, x64). Компиляция работала, и все выглядело нормально. При компиляции выводится много, но это очень быстро, и поэтому я не могу его прочитать, поэтому я полагаю, что это не должно быть проблемой.

После того, как я успешно скомпилировал свой текущий проект, я получил необработанное исключение времени выполнения. Через некоторое время я обнаружил, что это исходит от функции QMdiArea::addSubwindow, которая, кажется, выдает исключение (хотя я не могу поймать его с помощью переопределенной функции уведомления). Поэтому я искал пример проекта, чтобы увидеть, мой ли это код или что-то еще. Я нашел этот пример здесь: http://www.codeprogress.com/cpp/libraries/qt/qMdiAreaAddSubWindow.php

И он отлично работает в 32-битном режиме, а также в режиме отладки x64, но опять же в функции QMdiArea::addSubwindow возникает необработанное исключение. Кто-нибудь знает, что не так или была такая же проблема?

В настоящее время я перекомпилирую Qt, чтобы снова получить отладочную информацию (я очистил ее заранее).

Но может у кого-то была такая же проблема и решение для меня.

//Обновление: Код здесь (точно такой же, как в ссылке)

#include <QApplication>
#include <QMainWindow>
#include <QMdiArea>
#include <QMdiSubWindow>

int main(int argc, char **argv)
{
    QApplication app(argc, argv);

    QMainWindow window;
    window.setFixedSize(800,600);
    window.setWindowTitle(QString::fromUtf8("My QMdiWindow"));
    QMdiArea* area = new QMdiArea();
    area->setSizePolicy(QSizePolicy::Expanding,QSizePolicy::Expanding);

    //Create QMdiSubWindow
    QMdiSubWindow* subWindow = new QMdiSubWindow();
    subWindow->setFixedSize(200,100); 

    //Add subWindow to Main QMdiWindow here
    area->addSubWindow(subWindow);

    window.setCentralWidget(area);
    window.show();


    return app.exec();
}

//Update2: я открыл другое обсуждение здесь.


person drakon    schedule 16.07.2012    source источник
comment
Код выше кажется правильным. По крайней мере, я не смог воспроизвести вашу проблему.   -  person hank    schedule 16.07.2012
comment
Да, я тоже. В QtCreator работает нормально.   -  person Blood    schedule 16.07.2012
comment
Да я уже писал, что ошибка возникает только в режиме релиза x64. debug и любой 32-битный режим работает нормально. Что вы пробовали? - А нельзя ли попробовать и x64 релизы?   -  person drakon    schedule 16.07.2012


Ответы (1)


Хорошо, я нашел проблему. Это ошибка в компиляторе MSVC++. Помогает установка пакета обновлений и повторная компиляция Qt.

person drakon    schedule 17.07.2012