Vinculación explícita

 

Para obtener la documentación más reciente de Visual Studio 2017 RC, consulte Documentación de Visual Studio 2017 RC.

Con la vinculación explícita, las aplicaciones deben realizar una llamada a función para cargar explícitamente el archivo DLL en tiempo de ejecución. Para una vinculación explícita a un archivo DLL, una aplicación debe:

  • Llamar a LoadLibrary (o a una función similar) para cargar el archivo DLL y obtener un identificador de módulo.

  • Llamar a GetProcAddress para obtener un puntero a función para cada función exportada a la que la aplicación desee llamar. Como las aplicaciones llaman a las funciones del archivo DLL mediante un puntero, el compilador no genera referencias externas, por lo que no hay necesidad de vincularse a una biblioteca de importación.

  • Llamar a FreeLibrary cuando se haya acabado de utilizar el archivo DLL.

Por ejemplo:

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

Vincular un ejecutable a un archivo DLL

Mostrar: