gpt4 book ai didi

c++ - 架构 : plugin and standalone behavior

转载 作者:行者123 更新时间:2023-11-28 04:11:45 25 4
gpt4 key购买 nike

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

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

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

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

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

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

4- 一切正常! 有效!

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

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

但是,如果这个插件文件位于“插件文件夹”中......当“主应用程序”启动时,它也可以动态加载它(就像一个共享库).

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

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

最佳答案

Is there any way to "mix" this two file behaviors (executable and shared library)? How to do it?

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

关于c++ - 架构 : plugin and standalone behavior,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57626556/

25 4 0
文章推荐: html - 创建一个具有多个边框的 css 徽章
文章推荐: html -
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com