Qt程序在app.exec()上发生MSVC崩溃

时间:2018-07-19 13:05:02

标签: c++ qt visual-c++ mingw

我需要将OpenCV包含到我的程序中,因此很长一段时间后,我放弃了在mingw(它对我的程序完全起作用)上进行设置,并安装了MSVC17编译器和调试器。但是,当我使用MSVC运行应用程序时,程序会因0x0000005 code, access violation on 0xfffffff而崩溃。

它总是在 main.cpp

中的app.exec()上崩溃
int main(int argc, char *argv[])
{
    QCoreApplication::setAttribute(Qt::AA_EnableHighDpiScaling);
    QGuiApplication app(argc, argv);

    MyClass myClass;
    myClass.getView()->setMinimumWidth(900);
    myClass.getView()->setMinimumHeight(600);
    QQuickWindow *quickWindow = qobject_cast<QQuickWindow *>(myClass.getView());
    quickWindow->setFlags(Qt::FramelessWindowHint);

    //Connecting signal from QML to exit application
    QObject::connect(myClass.getView()->engine(), SIGNAL(quit()), &app, SLOT(quit()));

    quickWindow->show();


    return app.exec(); //Here it crash
}

正如我所说,它与mingw(32位)完全兼容。

MSVC2017 x64是否可以在构建以前由mingw x32使用的应用程序时崩溃?有人知道如何解决吗?

非常感谢您!

//编辑:

以某种方式,它适用于发行版,但不适用于调试模式。

//编辑:

仅当应用显示可见的QML对象时,它才会崩溃

1 个答案:

答案 0 :(得分:0)

这听起来像是32位与64位问题。

尝试更新项目上的依赖项,看看是否可以解决,如果您指定CPU构建,则应该能够将原始源重新构建为x64,并更新任何x86的依赖项。

或者,以32位模式运行该应用。