我需要将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对象时,它才会崩溃
答案 0 :(得分:0)
这听起来像是32位与64位问题。
尝试更新项目上的依赖项,看看是否可以解决,如果您指定CPU构建,则应该能够将原始源重新构建为x64,并更新任何x86的依赖项。
或者,以32位模式运行该应用。