我有两个 .so (不同的进程),现在我想在 C++ 中的 2 个 .so 之间进行双向通信,例如使用任何正常的 api 调用和回调。例如,如果从一个文件(一个.so)调用一个方法,那么它应该传递到具有相同数据(另一个.so)的另一个文件,反之亦然。 (例如,像 ne 类一样,它将具有所有方法,并且两个文件可以实现并调用这些方法以进行双向通信) (不想共享内存或基于消息,因为它将是相同的进程上下文)我正在寻找不同的进程上下文
不想共享内存或基于消息,因为它将是相同的进程上下文 期望来自一个文件(一个 .so),我们应该能够调用带有一些参数的方法,并且该参数应该传递/获取传递给另一个文件(另一个 .so)。就像C++中2个.so之间的双向通信一样,就像api调用但不同的进程范围。
我想你有以下情况
main App
/ \
/ \
/ \
Library1.so Library2.so
有一些设计模式有助于将数据从一个库传递到另一个库,同时保持它们的松散耦合,仅举几个最常用的。
main App
将公开 Library 1
可以调用的接口,然后 main App
将调用 Library 2
。Library 1
会将消息放入一个线程的消息队列中,而 Library 2
将从另一个线程的队列中弹出项目。Qt 混合使用它们,其中同一线程上的消息使用观察者模式,不同线程上的消息使用消息传递。