Compartilhar via


Vinculando explicitamente

Com a vinculação explícita, aplicativos devem fazer uma função chamada explicitamente carregar a DLL em tempo de execução. Para vincular uma DLL explicitamente, um aplicativo deve:

  • Chame LoadLibrary (ou uma função semelhante) para carregar a DLL e obter um identificador de módulo.

  • Chame GetProcAddress obter um ponteiro de função para cada exportados a função que o aplicativo deseja chamar. Porque os aplicativos estão chamando a funções da DLL através de um ponteiro, o compilador não gerar referências externas, portanto, não é necessário vincular com uma biblioteca de importação.

  • Chame FreeLibrary quando feito com a DLL.

For example:

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);
   }
}

O que você deseja fazer?

O que você deseja saber mais a respeito?

Consulte também

Conceitos

Vinculando um executável para uma DLL.