• Qt加载lib、dll的几种方式


    1. 加载DLL

    (1) pro种加载

    LIBS+=$$PWDXXX.dll

    (2) QLibrary

    QLibrary *libOCI = new QLibrary("F:\oracle\product\10.2.0\db_1\bin\oci.dll");
    //加载动态库
    libOCI->load();
    if (!libOCI->isLoaded())
    {
        printf("Load Oracle oci.dll failed! ");
        return 0;
    }

    ==>Qt生成的dll可以,但外部的dll不行

    (3) addLibraryPath

    QApplication::addLibraryPath("D:/Qt/Documents/build-FaceComparison-Desktop_Qt_5_9_8_MinGW_32bit-Release/release/");

    (4) QPluginLoader

     void MainWindow::ReadPluginsInfo( const QString & pluginsDirPath /*= ""*/ )
    {
        QString pluginsPath = pluginsDirPath;
        if (pluginsDirPath.isEmpty())
        {
            pluginsPath = QApplication::applicationDirPath();
        }
        QDir pluginsDir(pluginsPath);
        pluginsDir.cd("Plugins");

        QFileInfoList pluginsFile = pluginsDir.entryInfoList(QStringList() << "*.dll", QDir::Files);
        foreach(QFileInfo fileInfo, pluginsFile)
        {
            QPluginLoader loader(fileInfo.absoluteFilePath());
            bool isLoad = loader.isLoaded();
            QString info = loader.errorString();

            if (QObject * plugin = loader.instance())
            {
                qDebug() << isLoad;
            }
            else
            {
                qDebug() << loader.errorString();
            }
        }
    }

    QStringList paths = QCoreApplication::libraryPaths();

    
    
    
    
    
    

    2. 加载lib

    //运行目录获取

        QString applicationDirPathStr = QApplication::applicationDirPath();
        qDebug() << "----------运行目录获取-------------"<<applicationDirPathStr;
    
    
        //运行环境目录获取
        QString applicationDirPathStr2 = QDir::currentPath();
        qDebug() << "----------运行环境目录获取-------------"<<applicationDirPathStr2;


  • 相关阅读:
    ipv6 for openwrt odhcpd
    openwrt package Makefile
    openwrt 中个网络接口协议说明[转]
    openwrt Package aircrack-ng is missing dependencies for the following libraries:
    linux kernel 从cmdline 提取值
    js 上传文件进度条 [uboot使用]
    printk打印级别 [转]
    linux c 宏定义
    uboot 开发记录
    mac ssh scp命令
  • 原文地址:https://www.cnblogs.com/xiang--liu/p/12912226.html
Copyright © 2020-2023  润新知