DLL動態庫多次載入問題

2022-09-22 06:11:40 字數 272 閱讀 1319

原因涉及dll載入和執行機制,主要有兩點:

1)dll動態連結庫無法獨立執行,必須由一個應用程式程序載入到程序空間後才能使用。載入dll的程序稱為宿主程序。被載入的dll屬於宿主程序,不屬於宿主程序內某個執行緒。

2)宿主程序可以重複呼叫,甚至重複載入dll。第1次呼叫dll或第1次載入dll時,宿主程序將dll引入程序空間。一旦宿主程序成功載入dll,隨後的重複呼叫或重複載入只會增加“引用計數”,而不會載入多份dll,所以程序中只有一份dll。

所以全域性變數可能會引起多執行緒同步問題。