2011-04-13 62 views
1

我需要使用Boost将一个字符串从一个进程发送到另一个进程。其实我试图创建一个firebreath插件(firebreath在其后端使用Boost),它应该能够将消息发送到另一个Firebreath插件。我认为这应该是一些事件机制;当发件人插件发送字符串时,应该在接收器插件中触发事件。什么是最好的方式来做到这一点?IPC in firebreath(boost C++)

回答

2

有些人建议使用boost :: ipc,其他人则警告说boost :: ipc在windows上不能很好地工作。我没有尝试boost :: ipc我自己,所以我不知道。一种选择是使用boost :: asio创建一个本地套接字(本地主机上的套接字)并启动一个线程在一边进行监听; Windows上的另一个选项是使用命名管道。我过去曾使用命名管道取得了很大的成功。

要记住的主要事情是,你不能阻止FireBreath中的主线程 - 如果你这样做会锁定浏览器进程或最好的情况下会弹出一个对话框询问用户是否想要杀死你的插件。相反,创建第二个线程来处理侦听器,然后在发生页面需要了解的事情时调用FireEvent。

另请参见Is Boost IPC any good?