2010-10-27 19 views
1

場景:州靜態變量的

我的應用程序綁定庫X其中有靜態類。我在我的過程中初始化它。 經過一段時間,當我加載一個DLL也使用相同的庫X

我看到的內容dll中的靜態變量沒有初始化。其中我已經在加載DLL之前在進程中初始化它。

我在DLL main中添加了初始化代碼,現在它的工作。

問題:我需要了解這種行爲/情況。

+0

調試器會告訴你發生了什麼。 – Abyx 2010-10-27 05:15:39

回答

1

庫x顯然是作爲靜態庫與exe和dll鏈接的: - 爲了獲得所需的行爲,庫X本身需要構建爲共享庫。因此,那麼「我的application.exe」和「a.dll」都將使用「libraryx.dll」,結果只有一個靜態值的實例。

+0

同意,我寫了一個記錄庫,其中有一個靜態記錄器(單例),我遇到過這個問題。 – Ralf 2010-10-27 13:26:41