共用方式為


LoadLibrary 和 AfxLoadLibrary

進程會呼叫 LoadLibraryLoadLibraryEx ,明確連結至 DLL。 (MFC 應用程式使用 AfxLoadLibraryAfxLoadLibraryEx.)如果函式成功,它會將指定的 DLL 對應至呼叫進程的位址空間,並將句柄傳回給 DLL。 在其他用於明確連結的函式中,需要句柄,例如 GetProcAddressFreeLibrary。 如需詳細資訊,請參閱 明確連結

LoadLibrary 嘗試使用用於隱含連結的相同搜尋順序來尋找 DLL。 LoadLibraryEx 可讓您更充分掌控搜尋路徑順序。 如需詳細資訊,請參閱 動態連結庫搜尋順序。 如果系統找不到 DLL,或進入點函式傳回 FALSE, LoadLibrary 則傳回 NULL。 如果的 LoadLibrary 呼叫指定已經對應至呼叫進程的位址空間的 DLL 模組,函式會傳回 DLL 的句柄,並遞增模組的參考計數。

如果 DLL 有進入點函式,操作系統會在呼叫 LoadLibraryLoadLibraryEx的線程內容中呼叫 函式。 如果 DLL 已經附加至進程,則不會呼叫進入點函式。 當先前對 LoadLibrary DLL LoadLibraryEx 的呼叫沒有對函式的對應呼叫 FreeLibrary 時,就會發生這種情況。

對於載入 MFC 擴充功能 DLL 的 MFC 應用程式,建議您使用 AfxLoadLibraryAfxLoadLibraryEx ,而不是 LoadLibraryLoadLibraryEx。 MFC 函式會在明確載入 DLL 之前處理線程同步處理。 和 AfxLoadLibraryEx 的介面(函式原型)AfxLoadLibraryLoadLibraryLoadLibraryEx相同。

如果 Windows 無法載入 DLL,您的行程可能會嘗試從錯誤中復原。 例如,它可以通知使用者錯誤,然後要求另一個 DLL 路徑。

重要

請務必指定任何 DLL 的完整路徑。 當載入 LoadLibrary檔案時,可能會先搜尋目前的目錄。 如果您未完全限定檔案的路徑,可能載入預期的檔案以外的檔案。 當您建立 DLL 時,請使用 /DEPENDENTLOADFLAG 連結器選項來指定靜態連結 DLL 相依性的搜尋順序。 在您的 DLL 內,使用兩個完整路徑來明確載入相依性,或LoadLibraryExAfxLoadLibraryEx呼叫參數來指定模組搜尋順序。 如需詳細資訊,請參閱動態連結庫安全性和動態連結庫搜尋順序

您想要做什麼事?

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

另請參閱