Мета: Навчитись створювати динамічні бібліотеки DLL в середовищі ОС
Windows.
Хід роботи
Завдання: Варіант 8. Розробити динамічно завантажувану бібліотеку, котра
використовує функцію, що виводить отриманий параметр у вікно повідомлення. Розробити другу програму, котра передає поточний час (00:00:00) параметром у функцію бібліотеки.
1.
Рисунок 1.1 – Код програми
Рис. 1.2. – Вміст створеного DLL файлу
2. Припустимо, що ми хочемо записати час у файл time.dll, що містить
функцію writeTime, яка приймає час у форматі рядка та записує його у файл. Рис. 2.1 – Вміст файлу «time.dll»
Закінчивши код у файлі time.dll, потрібно створити програму, яка буде
викликати цю функцію та передавати їй поточний час. Рис. 2.2 – Вміст файлу «main.asm»
Залишилось створити файл, який буде створювати dll з функцією
writeTime, яка записуватиме час у файл. Рис. 2.3 – Вміст файлу «time.asm»
Результат виконання цієї програми буде записаний у файл «time.txt» та
знаходитися у папці з програмою. Він буде містити поточний час у форматі HH:MM:SS. Якщо запустити цю програму кілька разів, то результати будуть додаватися у файл у вигляді нових рядків.
Рис. 2.4 – Вміст файлу «time.txt»
Контрольні запитання
1. Яка різниця між dll та lib бібліотеками?
Різниця між DLL (Dynamic Link Library) і LIB (Library) бібліотеками
полягає в тому, що DLL є динамічно завантажуваною бібліотекою, яка завантажується в пам'ять лише тоді, коли її використовують. Натомість, LIB є статичною бібліотекою, яка поєднується з програмою під час компіляції.
2. Які є два способи завантаження dll?
Два способи завантаження DLL: динамічне завантаження (під час
виконання програми) та статичне завантаження (під час компіляції програми).
3. Яка функція завантажує dll?
Функція LoadLibrary завантажує DLL у пам'ять.
4. Яка функція вивантажує dll?
Функція FreeLibrary вивантажує DLL з пам'яті.
5. З допомогою яких програм можна створити файл лістингу dll?
Можна створити файл лістингу DLL за допомогою компіляторів, таких
як Microsoft Visual C++, Borland C++, GCC (GNU Compiler Collection) та інших. Висновки
Я навчився створювати динамічні бібліотеки DLL в середовищі ОС
Windows. При розробці динамічно завантажуваних бібліотек (DLL) та програм, що використовують ці бібліотеки, було розроблено DLL файл з функцією, яка виводить отриманий параметр у вікно повідомлення та було розроблено програму, яка передає поточний час як параметр у функцію бібліотеки.
При розробці було вивчено роботу з DLL файлами та способи їх
завантаження у програму, а також використання функцій бібліотеки у програмі.