0

Visual Studio 2012 コンパイラで Qt 5.1.1 を使用しています。C++ バックエンドを持つ Quick 2 アプリケーションがあります。Qt Creator でアプリケーションを実行しているときは、すべて問題ないように見えます。しかし、Qt Creator の外部でアプリケーションを起動しようとすると、クラッシュします。

私のフォルダにはすべての Qt*.dll があり、D3DCompiler_46.dll もあります。

C++ 部分から QML ファイルのいくつかのファイルにアクセスしようとしましたが、Visual Studio デバッガーでクラッシュした後、クラッシュが null ポインター例外のように見えることがわかりました。

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: コメントの 2 人がコードの 1 つの文字列に混乱していました。

view.engine()->addImportPath("../QtAV/qml/");

それで、私はそれを削除しましたが、まだクラッシュしています(

4

0 に答える 0