QT插件加载与相关宏定义

1. 应用程序与插件加载

对于QT应用程序来讲,一个插件就是一个类的实例。插件的可用的方法由对应的接口类来决定。接口类仅仅包含纯虚函数,也就是说接口并不实现任何方法函数。插件通过继承QObject且继承对应的接口类来实现内部的具体函数功能。当应用程序用QPLuginLoader类加载可能的插件时,就会得到一个指向QObject的指针。通过将这个对象用qobject_cast 强制封装成接口类,应用程序就会分辨出插件是否真正实现了期望的接口,如果是就被加载成正确的插件。

要让QPluginLoader正确工作需要两个条件:1.插件接口类需要用宏Q_DECLARE_INTERFACE来声明;2.插件类本身也需要用Q_INTERFACES宏来声明表示实现了接口。这两个宏能够安全地让插件类与插件接口类匹配。事实上,QT在加载插件时有一个如下的检测标准,如果不满足,插件就不能正确加载。检查标准列表:

  1. 构件插件与应用程序的Qt版本必须一致,也就是major与minor数字一样;
  2. 构件插件与应用程序必须在同一个平台,同一操作系统,同一编译器中
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值