【问题标题】:Architecture: plugin and standalone behavior架构:插件和独立行为
【发布时间】:2019-08-23 21:03:05
【问题描述】:

我想使用 C++ 和 Qt 改进我的新软件的概念架构和模块化

我正在考虑开发一个“主应用程序”和一组“插件”(共享库)来扩展“主应用程序”的功能。

我已经对此做了一个简单的测试:

1-我构建了一个自定义共享库(我将其称为“带有 UI 的插件”)

2-我构建了使用QPluginLoader类加载共享库的主应用程序

3-当主应用程序启动时,它会动态地加载位于特定文件夹中的所有“插件”。

4- 一切正常! 有效!

所以,我的疑问是我想每个“插件”也可以单独运行......就像一个独立的可执行应用程序。 我想“双击”每个插件,或者使用终端/控制台调用它...传递一些输入参数...让它在没有“主应用程序”的情况下运行。

如果可能,我的架构将基于开发每个“插件”,就像一个“软件段”,完全自主(就像一个可执行文件)

但是,如果此插件文件位于“插件文件夹”内...当“主应用程序”启动时,它也可以动态加载它(如共享库)。

“加载动态”功能对于能够在“主应用程序”内创建自定义菜单和内部选项非常重要。 并且在未来,其他人将为这个“主应用程序”开发新的“插件”。 所以我不能“锁定”这个动态加载功能。

有没有办法“混合”这两个文件行为(可执行和共享库)? 怎么做?

【问题讨论】:

    标签: c++ qt


    【解决方案1】:

    有没有办法“混合”这两种文件行为(可执行文件和共享库)?怎么做?

    如果您在共享对象的 ELF 标头中指定解释器和入口点,这在 Linux 上基本上是可能的。见https://stackoverflow.com/a/30807350/563990

    【讨论】:

      猜你喜欢
      • 2019-03-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-08-09
      • 2019-06-06
      • 1970-01-01
      • 2011-11-18
      相关资源
      最近更新 更多