首先我做了什麼(如果它不只是我做一些簡單的愚蠢,將提供最小採樣):共享一個boost ::動態加載的庫之間的ASIO :: io_service對象
我有應支持GUI應用程序幾個網絡接口來更改GUI中顯示的內容。網絡接口被實現爲在GUI啓動時動態加載的插件。 GUI應用程序提供了一個boost :: asio :: io_service對象,它通過引用傳遞給接口,以便它們可以使用它來構建異步I/O。在GUI線程中,此io_service對象被輪詢以同步網絡接口對內容的訪問。
現在的問題是處理程序在輪詢時不會被io_service對象調用。爲了縮小這個範圍,我只實現了一個接口,並在其中創建了io_service對象,仍然從GUI線程調用輪詢並且工作正常。
我現在的問題是:是否有可能將io_service對象傳遞到運行時加載的DLL函數中?
如果場景太不清楚,我會提供一個最小的例子。
編輯:我覺得真的很愚蠢:)剛剛砍了一個最小的例子,當然 - 就像一個魅力。這幾乎意味着問題來自軟件的其他部分。
非常感謝大家的意見!
爲了使這個問題至少有點有用: 任何人想要做類似的事情(通過boost :: asio :: io_service同步網絡插件),您可以下載最小示例here。
這種情況很明顯,但一個例子肯定會有所幫助。 – 2011-01-28 02:27:54
任何數量的DLL使用相同的io_service沒有任何問題,更重要的是,它可以被任意數量的線程使用(如果你知道你在做什麼)。所以請提供啓動異步操作的示例和輪詢 – 2011-01-31 18:18:51