Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лаб.DOC
Скачиваний:
7
Добавлен:
16.05.2015
Размер:
662.02 Кб
Скачать

4.8.3 Підключення функцій бібліотеки dll до виконувального файлу

Перед викликом експортованої функції необхідно завантажити бібліотекуDLLабо за допомогоюAPI-функціїLoadLibrary(), або за допомогою методуAfxLoadLibrary() для MFC-програм. Після успішного завантаження така функція повертає дескриптори об’єктівDLL, за допомогою яких можуть бути викликані експортовані функції динамічної бібліотеки. Для виклику експортованої функції із бібліотекиDLLвикористовуєтьсяAPI-функціяGetProcAddress():

GetProcAddress(HMODULE hModule, LPCSTR lpProcName); .

Підключити функцію із бібліотекиDLLдо виконувального файлу без використання файлу визначень можна, якщо в основному файлі (типу*.cpp) оголосити цю функцію як глобальну імпортовану:

extern “C” _declspec(dllimport); .

Після закінчення роботи з бібліотекою DLL, її необхідно вивантажити за допомогоюAPI-функціїFreeLibrary().

Повністю фрагмент програми основного файлу (типу *.cpp) матиме такий вигляд.

HINSTANCE hDll;

hDll = ::LoadLibrary("MyDll");

if (hDll == NULL)

MessageBox("file MyDll.dll was not find...");

else

{

typedef int (*FUN)(int *,int);

FUN func;

func = (FUN)::GetProcAddress(hDll,"Calculate");

res = (*func)(matrix[m],n);

wsprintf(s,"%d",res);

MessageBox(s,"Result after DLL");

}

::FreeLibrary(hDll); .

120

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]