コア、プラグイン、GUIがモジュール式に分離されたソフトウェアを開発しています。モジュールをオンデマンドで動的にロードします。
プラグインや異なるツールキットを使用するGUIが最終的にサードパーティによって開発されることを考慮して、このようにモジュール化されたソフトウェアにどの種類の相互通信が最適であるかを判断する必要があります。
今のところ、共有オブジェクトからシンボルをロードし、それらのタイプと関数のシグネチャを知ってそれらを操作することを検討しました。DBusのようなIPCの使用も検討しましたが、これがやり過ぎなのか、まったく不要なのかはわかりません。
クロスプラットフォームであることは、現時点ではそれほど問題ではありませんが、将来的には問題になる可能性があります。
一方と他方の長所と短所は何ですか?私が見つけていない他の解決策を検討する必要がありますか?