當應用程式與DLL 靜態連結時,應用程式期望DLL 在其自己的目錄中。但是,如果將 DLL 放置在其他位置,應用程式將無法載入它。
方法1:依賴項載入
不要靜態連結DLL,而是使用LoadLibrary() 和GetProcAddress() 進行動態載入.這允許應用程式從指定路徑載入 DLL。
方法 2:修改 PATH 環境變數
將 DLL 位置的路徑加入 PATH 環境變數。這使得使用 PATH 變數搜尋的所有應用程式都可以存取 DLL。
方法 3:延遲載入機制
實作一個自訂幫助函數,依照下列內容載入 DLL提供的路徑。這會延遲 DLL 加載,直到應用程式需要它為止。
方法 4:程式集清單
在 DLL 的資料夾中建立清單文件,將該資料夾指定為程式集,然後列出 DLL。使用 #pragma comment 指令將此組件新增至應用程式的依賴項清單中。
方法5:存根執行檔和SetDllDirectory
建立設定DLL 搜尋路徑的存根執行檔在將實際應用程式作為DLL 載入之前,使用SetDllDirectory( ) 到DLL 的位置。
以上是如何更改靜態連結 DLL 的 DLL 搜尋路徑?的詳細內容。更多資訊請關注PHP中文網其他相關文章!