0

次の手順で Qt 4.8.1 をコンパイルしました

私のシステム(Visual Studio 2010、x64)用。コンパイルは機能し、すべて問題ないように見えました。コンパイル中に多くの出力がありますが、非常に高速であるため、読み取ることができないため、問題にはならないと思います。

現在のプロジェクトを正常にコンパイルした後、未処理のランタイム例外が発生しました。しばらくすると、それがQMdiArea::addSubwindow例外をスローしているように見える関数に由来することがわかりました(ただし、オーバーライドされた通知関数ではキャッチできません)。そこで、サンプル プロジェクトを検索して、それが私のコードなのか、それとも何か他のものなのかを確認しました。ここでこの例を見つけました: http://www.codeprogress.com/cpp/libraries/qt/qMdiAreaAddSubWindow.php

また、x64 のデバッグ モードと同様に 32 ビット モードでも正常に動作しますが、 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:ここで別のディスカッションを開きました。

4

1 に答える 1

0

わかりました、問題が見つかりました。これはMSVC++コンパイラのバグです。サービスパックをインストールしてQtを再コンパイルすると役立ちます。

于 2012-07-17T09:50:41.503 に答える