共用方式為


明確連結

使用明確連結時,應用程式必須製作函式呼叫,以便在執行階段明確地載入 DLL。 為了明確地連結 DLL,應用程式必須:

  • 呼叫 LoadLibrary (或類似函式) 來載入 DLL 並且獲得模組控制代碼。

  • 呼叫 GetProcAddress 以便獲得每個應用程式要呼叫的匯出函式之函式指標。 因為應用程式是經由指標呼叫 DLL 的函式,所以編譯器不會產生外部參考,如此一來,就不需要連結匯入程式庫。

  • 在使用完 DLL 時呼叫 FreeLibrary

例如:

typedef UINT (CALLBACK* LPFNDLLFUNC1)(DWORD,UINT);
...

HINSTANCE hDLL;               // Handle to DLL
LPFNDLLFUNC1 lpfnDllFunc1;    // Function pointer
DWORD dwParam1;
UINT  uParam2, uReturnVal;

hDLL = LoadLibrary("MyDLL");
if (hDLL != NULL)
{
   lpfnDllFunc1 = (LPFNDLLFUNC1)GetProcAddress(hDLL,
                                           "DLLFunc1");
   if (!lpfnDllFunc1)
   {
      // handle the error
      FreeLibrary(hDLL);       
      return SOME_ERROR_CODE;
   }
   else
   {
      // call the function
      uReturnVal = lpfnDllFunc1(dwParam1, uParam2);
   }
}

您想要怎麼做?

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

請參閱

概念

將可執行檔連結至 DLL