使用MSVC编译的Qt程序在app.exec()上崩溃



我需要将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对象时,它才会崩溃

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

尝试更新项目上的依赖项,看看这是否解决了问题。如果指定CPU内部版本,则应该能够将原始源重新构建为x64,并更新任何x86依赖项。

或者,以32位模式运行应用程序

最新更新