共用方式為


LoadLibrary 和 AfxLoadLibrary

更新:2007 年 11 月

處理序會呼叫 LoadLibrary (或 AfxLoadLibrary) 來明確連結至 DLL。若是成功,函式會將特定 DLL 對應到呼叫處理序的位址空間,並將控制代碼傳回給其他明確連結的函式 (例如 GetProcAddressFreeLibrary) 所使用到的 DLL。

LoadLibrary 會嘗試依照和隱含連結相同的搜尋順序來找出 DLL。如果系統無法找出 DLL 或者如果進入點函式傳回 FALSE,LoadLibrary 就會傳回 NULL。如果 LoadLibrary 的呼叫指定已經對應到呼叫處理序的位址空間之 DLL 模組,函式便只會傳回 DLL 的控制代碼,並遞增模組的參考次數 (Reference Count)。

作業系統會在 DLL 擁有進入點函式時,呼叫名為 LoadLibrary 執行緒內容中的函式。如果 DLL 已經連結至處理序,就不會呼叫進入點函式,因為先前 LoadLibrary 的呼叫並沒有包含 FreeLibrary 函式的對應呼叫。

載入擴充 DLL 的 MFC 應用程式應該使用 AfxLoadLibrary 而不是 LoadLibraryAfxLoadLibrary 會在呼叫 LoadLibrary 之前處理執行緒同步處理。AfxLoadLibrary 的介面 (函式原型) 與 LoadLibrary 相同。

如果因為某些原因使得 Windows 無法載入 DLL,處理序可以嘗試從錯誤復原。例如,處理序將錯誤告知使用者,並且讓使用者指定 DLL 的另一個路徑。

安全性注意事項:

如果程式碼要在 Windows NT 4、Windows 2000 或 Windows XP (SP1 以前的版本) 下執行,請記得指定 DLL 的完整路徑名稱。在這些作業系統上,載入檔案時會先搜尋目前的目錄。如果您不指定檔案的路徑,則可能會載入非預期的檔案。

您想要執行的動作?

您還想知道關於哪些方面的詳細資訊?

請參閱

概念

DLL