2010-12-10 68 views
0

在我們的應用程序中,我們動態加載一個dll文件,該文件又與其他dll具有靜態綁定。從給定目錄強制靜態加載dll

到目前爲止,所有這些DLL已經在我們的應用程序文件夾中。從現在開始,我們希望將這些DLL移動到目錄結構中。在哪個文件夾中加載dll將在運行時決定。 (版本/動態更新...)

問題1:強制動態加載庫在給定文件夾中查找靜態加載庫的最佳方法是什麼?

問題2:如果舊版本的庫留在那裏,我們如何防止從應用程序文件夾加載靜態庫?

(順便說一句,這是一個Win32應用程序......)

回答

3

對於你應該尋找到SetDllDirectory Q1。它會影響所有後續的DLL搜索,但應用程序文件夾中的DLL(如舊DLL)仍然優先。

然後立即回答問題2:如果你不想這樣做,不要使用隱式DLL加載。使用LoadLibraryEx,並使用完整路徑。這是防止Windows搜索的唯一方法。

+0

LoadLibraryEx看上去有些詭異。謝謝。 – Vegar 2010-12-10 15:57:30