Łączenie jawne
Podczas jawnego łączenia, aplikacje muszą wykonać wywołanie funkcji w celu jawnego załadowania biblioteki DLL w czasie wykonywania.Aby jawnie utworzyć łącze do biblioteki DLL, aplikacja musi:
Wywołać LoadLibrary (lub podobną funkcję) aby załadować bibliotekę DLL i uzyskać uchwyt modułu.
Wywołać GetProcAddress aby uzyskać wskaźnik funkcji do każdej eksportowanej funkcji, którą aplikacja chce wywołać.Ponieważ aplikacje wywołują funkcje DLL za pomocą wskaźnika, kompilator nie generuje zewnętrznych odwołań, więc nie trzeba łączyć z biblioteką importu.
Wywołać FreeLibrary po zakończeniu akcji z biblioteką DLL.
Na przykład:
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);
}
}