Vinculando explicitamente
Com a vinculação explícita aplicativos devem fazer uma função chamar explicitamente carregar a DLL em time de execução.Para vincular explicitamente uma DLL, um aplicativo deve:
De telefonarLoadLibrary (ou uma função semelhante) para carregar a DLL e obter um identificador de módulo.
De telefonarGetProcAddress para obter um ponteiro de função para cada função exportada o aplicativo deseja chamar.Uma vez que aplicativos estão chamando funções da DLL através de um ponteiro, o compilador não gerará as referências externas, portanto, é necessário vincular com uma biblioteca de importação.
De telefonarFreeLibrary quando termina de utilizar a DLL.
Por exemplo:
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);
}
}