QtDesigner and QuaZip issue



不确定有多少人使用QuaZip在Qt内打开和使用zip文件,但我试图使用以下代码打开zip文件:

#include "quazip/JlCompress.h"
#include <QDebug>
#include <QtWidgets>
MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
ui->setupUi(this);
ConnectActions();
...
}
bool MainWindow::LoadArchive(const QString &filename)
{
    //qDebug() << "STUB: LoadArchive()";
    QuaZip archive_handle(filename);
    //Attempt to open the file, return false and display error message
    if(!archive_handle.open(QuaZip::mdUnzip)) {
        qDebug() << "Archive does not exist or is damaged!";
        return false;
    }
    //Perform some sort of operation, such as loading the images out of the archive
    //tidy up
    archive_handle.close();
    return true;
}

它给出了错误:

QIODevice::open: File access not specified
Archive does not exist or is damaged!
***Error in `/home/adrian/Development/build-CinemaStrips-Desktop_Qt_5_3_GCC_64bit-Debug/CinemaStrips': free(): invalid pointer: 0x00007f2c4b709ce0***
The program has unexpectedly finished.

我不知道我是否错过了一个步骤,因为API指令非常简单,我在我的代码中逐字逐句地遵循了它们。正如你所看到的,我用的是Qt5;QuaZip只工作与4?最后,有没有另一种方法与压缩文件在Qt工作,任何人都有经验?

谢谢!

回答我自己的问题,似乎我的问题是我的Qt项目文件中quazip库的相对路径解析之一。当使用相对路径在.pro中指定一个库时,必须记住Qt在运行二进制文件时从它的位置解析相对库路径。另一方面,我是从.pro(和我的代码库)位置的角度指定库的位置。一旦改正,我的错误就减轻了。

相关内容

  • 没有找到相关文章