我正在开发一个软件,它的核心、插件和 GUI 模块化分离。我按需动态加载模块。
考虑到使用不同工具包的插件或 GUI 最终将由第三方开发,我需要确定哪种类型的相互通信最适合以这种方式模块化的软件,以便不同部分可以交换事件和信息。
现在我考虑简单地从共享对象中加载符号,并在知道它们的类型和函数签名的情况下使用它们。我也考虑过使用像 DBus 这样的 IPC,但我不确定这是否是矫枉过正或完全没有必要。
跨平台现在不是什么大问题,但将来可能会。
一个与另一个的优缺点是什么?还有其他我没有找到的解决方案吗?