2011-04-13 60 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?