zoukankan      html  css  js  c++  java
  • 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;


  • 相关阅读:
    第一个博客——python通过值传递函数参数
    JAVA并发体系-1.1-终结任务或线程
    JAVA并发体系-1.4-线程池
    JAVA并发体系-1.3-线程之间的协作
    JAVA并发体系-2-锁机制
    并发实现机制-1-综述
    JAVA并发体系-3-并发容器
    并发实现机制-2-互斥实现
    并发实现机制-3-死锁和饥饿
    JAVA持有对象
  • 原文地址:https://www.cnblogs.com/xiang--liu/p/12912226.html
Copyright © 2011-2022 走看看