2014-02-21 30 views
2

我們有一個基於插件的GUI,它使用Qt,但不使用Qt插件。根據GUI的需求動態加載插件,並且可能在同一個會話中多次加載和卸載相同的插件。迄今爲止,每個插件都有自己獨特的一組類型,它們需要通過信號/插槽,因此每個插件註冊並註銷其元類型,因爲它們被加載和卸載。在多個DLL中註冊常見的Qt元類型

在最近一次重構項目之後,我們將一些類型移到了一個公共位置,以便它們可以在我們的兩個插件中重用。我們現在面臨的問題是,如果兩個插件同時加載,第一個插件將取消註冊這兩個插件使用的元類型。這會導致我們的信號/插槽連接不再在仍然加載的插件中運行。

我想我們可以通過對每個元類型的註冊進行引用計數來解決這個問題,但這聽起來像可能是矯枉過正。有一個更簡單的解決方案來解決這個問題嗎?

回答