我目前正試圖將DLL(FooEmulation
)集成到現有項目中。保存DLL的靜態內存的單獨實例
該DLL假定它將一次只用於模擬一個Foo
,並因此使用大量靜態全局變量。
但是,我希望能夠同時管理數千個Foo
實例。
我有原始DLL的源代碼,所以我可以將所有的靜態全局變量轉換爲參數(無論是直接還是通過句柄),但是DLL是單獨維護的,我希望儘可能避免分叉/合併。
我發現的一種技術是加載多個動態生成的DLL副本,但是這對於我需要的規模而言資源太大。 我也不能爲每個Foo
創建一個進程或線程。
是否有可能保留DLL的靜態內存的多個副本,並在每次使用DLL時恢復它?
我如何找到它?我甚至允許觸摸它嗎?
fwiw,這是在Windows上。 – mskfisher 2010-11-08 11:26:49