簡體   English   中英

每個 dylib 如何有一個單身人士?

[英]How can I have one singleton per dylib?

我正在嘗試制作一個 VST 插件(音頻軟件的動態庫),其中包含一個單例(使用靜態 C++ 成員)。 問題是,當我嘗試加載多個插件實例(即 dylib 的 2 個副本)時,靜態成員被共享,即 dylib 的 2 個實例共享相同的 dylib。 是否有一種機制可以讓您禁用跨 dylib 邊界共享靜態變量? 例如,同一個 dylib 的每個實例都有自己的單例?

我所知道的所有動態庫都是一個二進制文件,它的一個實例被加載到內存中並被多個進程使用。 如果該單個實例中有一個單例,則使用該共享庫的所有進程都將看到相同的單例。 您真正想要的是這些對象的動態集合。 在進程加載庫時創建一個,並在公主卸載庫時銷毀相應的一個。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM