qt怎么動(dòng)態(tài)加載dll庫(kù)

qt
小億
352
2023-11-30 19:32:09

在Qt中,可以使用QLibrary類來(lái)動(dòng)態(tài)加載DLL庫(kù)。以下是一個(gè)示例:

#include <QLibrary>
#include <QDebug>

int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);

    // 動(dòng)態(tài)加載DLL庫(kù)
    QLibrary myLib("mylibrary.dll"); // 替換為你自己的DLL庫(kù)文件名

    // 檢查是否成功加載
    if (!myLib.load()) {
        qCritical() << "Failed to load DLL library:" << myLib.errorString();
        return -1;
    }

    // 獲取并調(diào)用DLL庫(kù)中的函數(shù)
    typedef int (*MyFunction)(int);
    MyFunction myFunction = (MyFunction)myLib.resolve("myFunction"); // 替換為你自己的函數(shù)名

    if (myFunction) {
        int result = myFunction(42); // 調(diào)用DLL庫(kù)中的函數(shù)
        qDebug() << "Result:" << result;
    } else {
        qCritical() << "Failed to resolve function.";
        return -1;
    }

    // 卸載DLL庫(kù)
    myLib.unload();

    return a.exec();
}

請(qǐng)注意,上述示例中使用的是Windows下的.dll文件,如果是在其他平臺(tái),需要根據(jù)平臺(tái)的特定要求進(jìn)行相應(yīng)的更改。

0