延遲載入 DLL 的連結器支援

Visual C++ 連結器現在能夠支援延遲載入 DLL, 這讓您不需再使用 Windows SDK 的函式 LoadLibraryGetProcAddress 來實作 DLL 的延遲載入。

在 Visual C++ 6.0 以前,要於執行階段載入 DLL 的唯一方法就是使用 LoadLibraryGetProcAddress;在載入使用 DLL 的可執行檔或 DLL 時,作業系統就會載入該 DLL。

從 Visual C++ 6.0 開始,靜態連結 DLL 時,連結器會提供延遲載入 DLL 的選項,直到程式呼叫該 DLL 中的函式為止。

應用程式可以使用 /DELAYLOAD (延遲載入匯入) 的連結器選項和 Helper 函式 (Visual C++ 所提供的預設實作環境) 延遲載入 DLL。 Helper 函式將在執行階段時呼叫 LoadLibraryGetProcAddress 來載入 DLL。

下列情形時,您應該考慮延遲載入 DLL:

  • 程式可能不會呼叫在 DLL 中的函式

  • 可能要等到程式執行的後期才會呼叫 DLL 中的函式

建置 .EXE 或 .DLL 專案時,可以指定延遲載入 DLL。 延遲載入一或多個 DLL 的 .DLL 專案不應該自己呼叫 DllMain 中的延遲載入進入點 (Entry Point)。

下列主題說明延遲載入 DLL:

請參閱

概念

在 Visual C++ Dll

連結