0

私は次のQtコードを持っています:

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

    ChoosingDialog cdlg;

    if(!startWin.exec())
    {
        // nothing chosen
        return 0;
    }

    if(cdlg.firstWindowSelected)
    {
        CFirstWindow win;
        win.show();

        return app.exec();
    }
    else
    {
        CSecondWindow win;
        win.show();

        return app.exec();
    }

}

これは機能しているように見えますが、一部の asm 行で「イベント ディスパッチャのクリーンアップ」でエラーが発生しています。少し騙してみましたが、問題は app.exec() の呼び出しに関連していることがわかりました。

更新:これらの行をChoosingDialogに追加すると(これはQt Creatorによって自動生成された単純な空のクラスです)

void ChoosingDialog ::closeEvent(QCloseEvent *)
{
    exit(1);
}

エラーはありません

4

1 に答える 1

0

QApplication..の前に「singleapplication」クラスを使用していたことが判明し、共有メモリロックで何か問題が発生しました。

システムを再起動するとすぐに例外が消えました... 魔法を信じますか?

于 2012-07-31T17:10:59.127 に答える