Page 58 - 4989
P. 58
us/library/windows/desktop/ff818516(v=vs.85).aspx).
6.3.2 Динамічно зв’язувані бібліотеки
Динамічно зв’язувана бібліотека (DLL – dynamically linked
library) – це файл із виконуваним кодом, що містить функції, які
можуть бути викликані іншими програмами. Як правило, у DLL
оформляють функції, які можуть використовуватись багатьма
програмами, оскільки це дозволяє уникнути дублювання коду
цих функцій у всіх виконуваних файлах, які їх використовують
(саме таке дублювання буде при статичному зв’язуванні).
Використання функцій з DLL можливе двома способами:
1) шляхом компонування програми з файлом .lib
відповідної бібліотеки;
2) шляхом явного завантаження бібліотеки API-функцією
LoadLibrary, отримання покажчиків на потрібні функції
функцією GetProcAddress та викликом функцій через ці
покажчики (по завершенні роботи бібліотеку слід
вивантажити функцією FreeLibrary).
Системні бібліотеки є динамічно зв’язуваними бібліотеками,
які присутні в системному адресному просторі всіх програм. У
середовищі Microsoft Visual Studio підключення цих бібліотек
при компоновці програм забезпечується тим, що для кожного
проекту для компоновщика автоматично додаються посилання на
.lib-файли відповідних бібліотек (в цьому можна переконатись,
переглянувши у властивостях проекту значення властивості
Linker->Input->Additional dependencies). Файл .lib – це
«заглушка», що генерується під час збірки проекту бібліотеки і
містить код для завантаження динамічно зв’язуваної бібліотеки
та функції-перехідники для виклику відповідних функцій з
бібліотеки. При компоновці проекту в команди виклику функцій
Windows АРІ підставляється адреса функцій з файлу .lib, які під
час роботи програми будуть викликати відповідні функції з
файлу .dll.
6.3.3 Робота з файлами і каталогами
Окрім функцій, які забезпечують базові операції з файлами,
такі як відкривання, читання та запис, що зазвичай реалізуються
стандартними бібліотеками мов програмування, Windows API
58