次の手順で 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:ここで別のディスカッションを開きました。