LoadLibrary 和 AfxLoadLibrary
處理序會呼叫 LoadLibraryAfxLoadLibrary(或) 與明確連結至 DLL。 如果函式成功,則會將指定的 DLL 對應到呼叫處理序的位址空間並傳回控制代碼可以與其他函式在明確連結 (例如、 GetProcAddress 和 FreeLibrary的 DLL。
LoadLibrary 嘗試找出 DLL 使用隱含連結使用相同的搜尋順序。 如果系統無法找出 DLL 或者如果進入點函式傳回 FALSE,LoadLibrary 就會傳回 NULL。 如果對 LoadLibrary 的呼叫指定已經對應到呼叫處理序的位址空間之 DLL 模組,函式便只會傳回 DLL 的控制代碼並遞增模組的參考次數。
作業系統會在 DLL 擁有進入點函式時,呼叫執行緒內容中名為 LoadLibrary 的函式。 進入點函式未呼叫,如果 DLL 已經連結至處理序因為沒有對應的呼叫 FreeLibrary 函式先前對 LoadLibrary 的呼叫。
對於會載入擴充 DLL 的 MFC 應用程式,我們建議您使用 AfxLoadLibrary 而不要使用 LoadLibrary。 AfxLoadLibrary 可在您呼叫 LoadLibrary 之前處理執行緒同步處理。 AfxLoadLibrary 的介面 (函式原型) 與 LoadLibrary 相同。
如果 Windows 無法載入 DLL,處理序可以嘗試從錯誤復原。 例如,處理序將錯誤告知使用者,並且要求使用者指定 DLL 的另一個路徑。
安全性提示 |
---|
如果程式碼是在 Windows NT 4、Windows 2000 或 Windows XP 下 (SP1 之前),請確定指定 DLL 的完整路徑。在這些作業系統上,載入檔案時會先搜尋目前的目錄。如果您不合格檔案的路徑,而不是中的檔案可能會載入。 |