我正在使用带有 Visual Studio 2012 编译器的 Qt 5.1.1。我有一个带有 c++ 后端的 Quick 2 应用程序。当我在 Qt Creator 中运行应用程序时,一切看起来都很好。但是当我试图从 Qt Creator 之外启动应用程序时,它会崩溃。
我的文件夹中有所有 Qt*.dll ,也有 D3DCompiler_46.dll。
我试图从 C++ 部分访问我的 QML 文件中的一些文件,我看到在 Visual Studio 调试器中崩溃后,崩溃看起来像空指针异常。
QObject *openButton = instanceRoot->findChild<QObject*>("openFileButton");
openButton->setProperty("enabled",QVariant(enabled));
我在 qrc 文件中声明了所有资源,它也包含在我的 .pro 文件中
RESOURCES += res.qrc
通过这篇文章,我的所有 qml 文件都应该嵌入到我的 exe 文件中。但我认为不应该。
我怎样才能找到并解决这个问题?
UPD:这是我的主要功能:
int main(int argc, char *argv[]) {
QGuiApplication a(argc, argv);
Q_INIT_RESOURCE(res);
QQuickView view;
Decrypter dec;
view.rootContext()->setContextProperty("Decrypter", &dec);
QObject::connect(view.engine(), SIGNAL(quit()), &a, SLOT(quit()));
view.setSource(QUrl("qrc:/PlayerGUI.qml"));
view.show();
QQuickItem *rootObject = view.rootObject();
Player *player = new Player(rootObject);
return a.exec();
}
UPD2:评论中的两个人被一串代码弄糊涂了:
view.engine()->addImportPath("../QtAV/qml/");
所以,我删除了它,仍然有崩溃(