当前位置: 首页 > news >正文

Qt之插件

插件结构

QPluginLoader
+QObject* instance()
+QObjectList staticInstances()
+QVector staticPlugins()
QLibraryPrivate
+QAtomicPointer<std::remove_pointer>QtPluginInstanceFunction<::type> instanceFactory
+ QJsonObject metaData
+ QAtomicPointer<std::remove_pointer>Handle<::type> pHnd
QLibrary
QLibraryStore
- QMap<QString, QLibraryPrivate*> libraryMap

QPluginLoader:用于运行时加载插件

  • instance()方法获取插件的根组件
  • load()方法是从库获取方法qt_plugin_instance,并且存在instanceFactory变量中
  • unload()方法是卸载库,windows下是调用FreeLibrary,linux是调用dlclose,然后复位pHnd和instanceFactory
  • isLoaded()方法看是否加载完成,主要是看instanceFactory是否不为空
  • staticInstances()方法获取全局变量staticPluginList的实例副本
  • staticPlugins()获取全局变量staticPluginList

QLibrary:运行时加载动态库

  • resolve:解析得到函数指针
  • load:加载库
  • unload:卸载库
  • isLoaded:库是否加载完成
    QLibraryStore:用于存储库名与QLibraryPrivate 映射关系
http://www.lryc.cn/news/311907.html

相关文章:

  • Tensorflow2.0+部署(tensorflow/serving)过程备忘记录Windows
  • Docker的安装跟基础使用一篇文章包会
  • SQL技巧笔记(一):连续3人的连号问题—— LeetCode601.体育馆的人流量
  • LeetCode 1976.到达目的地的方案数:单源最短路的Dijkstra算法
  • vulnhub-----Hackademic靶机
  • 十秒学会Ubuntu命令行:从入门到进阶
  • 华为智慧教室3.0的晨光,点亮教育智能化变革
  • 深度学习预测分析API:金融领域的Game Changer
  • 外贸网站做Google SEO 用wordpress模板的优势
  • 后端面试题整理-1
  • Python图像处理之光斑分析
  • 软件测试 - 测试用例基本理论
  • 在 Flutter 中使用 flutter_gen 简化图像资产管理
  • 两天学会微服务网关Gateway-Gateway过滤器
  • 图像处理 mask掩膜
  • 信驰达ESP32-C3/RTL8720CM WiFi开发板RF-WT01上线
  • 【产品经理方法论——产品的基本概念】
  • 推特API(Twitter API)V2 查询用户信息
  • 在Elasticsearch IK分词器中更新、停用某些专有名词
  • 时钟显示 html JavaScript
  • List<Object>集合对象属性拷贝工具类
  • 请说明Vue中的异步组件加载
  • 目标检测5:采用yolov8, RK3568上推理实时视频流
  • 微服务:Feign篇
  • 基于chatgpt的聊天机器人
  • BAT常见的20道Android面试题详解,我的头条面试经历分享
  • python66-Python的循环之常用工具函数
  • Cocos Creator 3.8.x 制作模糊效果(比如游戏弹窗需要的模糊效果)
  • MATLAB报错:尝试将 SCRIPT imread 作为函数执行
  • 能源管理师:薪资待遇、技能知识与职业发展路景全解析