c++ - Qt中插件如何访问宿主程序提供的一些对象及函数?

查看:112
本文介绍了c++ - Qt中插件如何访问宿主程序提供的一些对象及函数?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

假设现在有两个项目,一个产生宿主程序(host),另一个产生一个dll文件(插件),提供一个接口.

宿主程序使用QPluginLoader将dll加载进入内存,使用instance方法获取到dll提供的实例化的一个接口对象.

这时候出现问题了,假设我在宿主程序中有一个连接数据库的单例对象,那么在插件项目中如何才能访问这个对象呢?

现在相当于是已经实现了宿主对插件对象的访问,但是如何才能反过来访问呢?

之前想过一种思路就是调用instance的方法将数据库的对象给他传进去,但是这样的话相当于操作数据库的代码在程序中出现了两遍,感觉不妥...

解决方案

如果你直接暴露instance,自然操作得两边各自持有一份。让两边都直接操作它不太合理。应当只有一边有直接操作权,另一边只允许访问一些有限的高级的接口。

这篇关于c++ - Qt中插件如何访问宿主程序提供的一些对象及函数?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆