понеделник 24 юли 2017
  • :
  • :

Какво представлява DLL фаил?

DLL е съкращение от Dinamic Link Library (библиотека за динамично свързване). Те са библиотечни файлове с компилиран код, който може да се употребява в други приложни програми.
Тези модули приличат на библиотечните (LIB) по това че също съдържат определени функционални възможности, пакетирани за употреба в приложните програми. Различията се изразяват при свързване на приложната програма към библиотеката. При обикновените библиотечни модули (LIB) програмата се свързва с функционалните възможности по време на компилиране и изграждане. Всички функционални възможности от библиотечния файл се превръщат в част от изпълнимия файл на програмата. При DLL файла приложната програма се свързва се свързва към функционалните възможности на библиотечния файл по време на своето изпълнение. Библиотеката остава самостоятелен файл, към който програмата извършва обръщения.

ПРЕДИМСТВА НА DLL ФАЙЛА ПРЕД LIB:

  1. Употребата на DLL влияе пряко върху големината на изпълнимия файл, защото в него не се включват функционалните възможности пакетирани в библиотеката, а те от своя страна могат да се използват от различни приложни програми.
  2. Може да актуализирате и модифицирате функционалните възможности на DLL, без да се налагат каквито и да е промени или допълнителни обработки в изпълнимия файл на програмата (разбира се, ако не коригирате експортния интерфейс на DLL).
  3. Възможност да използвате DLL с всеки от езиците за програмиране под WINDOWS.

СЪЗДАВАНЕ И УПОТРЕБА НА DLL

Библиотеките DLL предлагат определени функции и класове за приложните програми посредством експортиране на функции. Когато дадена функция се експортира, тя се добавя към таблица, включена в DLL. В тази таблица се съдържа списък на всички експортирани функции, съдържащи се в DLL и тя се използва за намиране и извикване на всяка от тях. Всяка функция която не е експортирана, не се добавя в таблицата и поради тази причина тя не може да бъде видяна или извикана по какъвто и да е начин от външна програма или DLL. Програмите могат да извикват функции от DLL по два способа:

  1. При по неясния от тях се намира мястото в DLL на нужната функция и се получава указател към нея. След това той се използва за обръщение към функцията.

При другия се осъществява свързване на приложната програма към файл LIB, създаден с DLL. Файлът LIB се третира от свързващия редактор като стандартен библиотечен файл. Файлът LIB съдържа тапи (stubs) за всяка от експортиранините функции в DLL. Тапата представлява псевдо-функция, която притежава наименование и списък с аргументи, еднакви с тези на действителната функция. В тялото на функцията заглушал ката е ограничено количество код, който извиква действителната функция от DLL, сякаш тя е часто от кода на приложната програма и не е обособена в отделен файл.