【发布时间】:2019-08-23 21:03:05
【问题描述】:
我想使用 C++ 和 Qt 改进我的新软件的概念架构和模块化。
我正在考虑开发一个“主应用程序”和一组“插件”(共享库)来扩展“主应用程序”的功能。
我已经对此做了一个简单的测试:
1-我构建了一个自定义共享库(我将其称为“带有 UI 的插件”)
2-我构建了使用QPluginLoader类加载共享库的主应用程序
3-当主应用程序启动时,它会动态地加载位于特定文件夹中的所有“插件”。
4- 一切正常! 有效!
所以,我的疑问是我想每个“插件”也可以单独运行......就像一个独立的可执行应用程序。 我想“双击”每个插件,或者使用终端/控制台调用它...传递一些输入参数...让它在没有“主应用程序”的情况下运行。
如果可能,我的架构将基于开发每个“插件”,就像一个“软件段”,完全自主(就像一个可执行文件)
但是,如果此插件文件位于“插件文件夹”内...当“主应用程序”启动时,它也可以动态加载它(如共享库)。
“加载动态”功能对于能够在“主应用程序”内创建自定义菜单和内部选项非常重要。 并且在未来,其他人将为这个“主应用程序”开发新的“插件”。 所以我不能“锁定”这个动态加载功能。
有没有办法“混合”这两个文件行为(可执行和共享库)? 怎么做?
【问题讨论】: