首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏狂码一生

    Qt创建及使用动态链接库(一)

    先讲一下对QT动态链接库的调用方法,主要包括: 1、显式链接DLL,调用DLL的全局函数,采用Qt的QLibrary方法 2、显示链接DLL,调用DLL中类对象、成员函数。 (通过对象即可实现类成员函数的调用) ①用虚函数表的方法,这也是COM使用的方法,利用Qt的QLibrary技术调用; ②用GetProcAddress直接调用。 ③用Qt的QPluginLoader类直接调用生成的DLL插件类对象 3、隐式链接DLL:也是采用Qt的Qlibrary方法 本节教程主要讲的是第1种,下面开始: 一、新建DLL项目,这里直接上图 在我们选择的运行方式目录下: 三、使用:我在这里新建了一个控制台程序作为调用示例,还是直接上代码 #include <QCoreApplication> #include <iostream> #include <QLibrary (int,int); int main(int argc, char *argv[]) {     QCoreApplication a(argc, argv);     //设置编码     QLibrary

    5.5K20发布于 2019-12-10
  • 来自专栏跟Qt君学编程

    开发日常 | 解决SSL缺库导致https失败的问题

    ifdef Q_OS_WIN QPair<QSystemLibrary *, QSystemLibrary *> libs = loadOpenSslWin32(); #else QPair<QLibrary *, QLibrary *> libs = loadOpenSsl(); #endif if (!

    2.6K10发布于 2020-02-13
  • 来自专栏Rice嵌入式

    QT编写一个JLINK烧录工具

    QT提供了QLibrary类可以动态加载dll,所以结合获取的函数符号,我们可以定义一些列函数指针指向对应的符号。 rjlinkConnectFunc)(void); typedef bool (*rjlinkIsConnectedFunc)(void); #endif // RJLINKARMH 通过QT提供了QLibrary NULL; 通过动态库(JLinkARM.dll)获取对应的函数指针 void RJLinkView::jlinkLibLoadHandle(void) { jlinkLib = new QLibrary

    3.1K30编辑于 2023-03-03
  • 来自专栏独行猫a的沉淀积累总结

    C++ 插件机制的实现原理、过程、及使用

    使用QT的QLibrary,(instance)lib->resolve("getInstance"),这里很关键,调用resolve()函数找到dll库中的getInstance函数,并强制转换为函数指针 declspec(dllexport) #else #define PLUGIN_MANAGER_EXPORT __declspec(dllimport) #endif class IPlugin; class QLibrary IPlugin* get(const QString& name); private: QHash<QString, IPlugin*> plugins_; QHash<QString, QLibrary entryInfoList = pluginDir.entryInfoList(); for (const auto &info : entryInfoList) { auto lib = new QLibrary

    9K51编辑于 2022-04-13
  • 来自专栏信数据得永生

    OpenCV3 和 Qt5 计算机视觉:1~5

    QDir::Files, QDir::Name); foreach(QFileInfo filter, filters) { if(QLibrary 之后,通过遍历foreach循环中的文件列表,它检查plugins文件夹中的每个文件,以确保仅接受插件(库)文件,请使用以下函数: QLibrary::isLibrary 然后检查通过上一步的每个库文件

    7.4K20编辑于 2023-04-27
领券