Создание динамически подключаемых библиотек (DLL)

Библиотеки DLL являются хранилищем различных компонентов (обыч­но процедур, функций и ресурсов). Вызов компонентов из биб­лиотеки производится динамически при выполнении приложения по мере обращения к компонентам и не зависит от языка программирования. Это позволяет изменять компонент отдельно от приложения, не пере­трансли­руя его, и использовать его в приложениях, написанных на других языках программирования (C++, Visual Basic).

Приведем пример создания библиотеки из двух функций Sum и Mult.

Выполним команду File/New/Dll. Сформируется заготовка, которую далее отредактируем, после строки {$R *.RES} вставим строки:

function Mult(x,y:double):double; begin Result:=x*y; end; // произведение x*y

function Sum(x,y:double):double; begin Result:=x+y; end; // сумма x+y

exports Sum, Mult; //список имен экспортируемых функций Sum, Mult

Сохраним проект под именем BSP и откомпилируем его (^F9), сфор­ми­руется файл Bsp.Dll.

Внимание! Регистры букв в имени функции (в команде объ­яв­ле­ния функции в проекте) и в заголовке функции (в библиотеке) дол­жны соот­вет­­ст­во­вать.

В библиотеке можно хранить не только программы, но и ресурсы, например формы. Для примера создадим в проекте BSP форму (Form1) с надписью «Форма из BSP.DLL» и процедуру ShowFormDll (для создания и вывода формы Form1) вида:

procedure ShowFormDll(AOwner:TComponent); //заголовок процедуры

var F:TForm1; //переменная типа TForm1

begin F:=TForm1.Create(AOwner); //создание формы

F.ShowModal; {вывод формы} F.Free; {удаление формы} end;

Дополним строку exports:

exports Sum, Mult, ShowFormDll; //список имен экспортируемых функций

Откомпилируем проект (^F9) и получим новый вариант Bsp.DLL с дополненный формой и процедурой ее создания ShowFormDll.

Создайте новый проект для проверки Bsp.DLL (например, форма с двумя поля­ми вво­да чисел и кнопками (суммировать, перемножить, вывес­ти форму) для проверки подпрограмм Sum, Mult, ShowFormDll).

В новом проекте объявите процедуры:

function Mult(x,y:double):double; //объявление функции Mult

external 'bsp.dll' //имя библиотеки DLL с функцией Mult

function Sum(x,y:double):double; //объявление функции Sum

external 'bsp.dll' //имя библиотеки DLL с функцией Sum

procedure ShowFormDll (AOwner:TComponent); //объявление процедуры

external 'bsp.dll' //имя библиотеки DLL с процедурой ShowFormDll.

Вывод формы можно реализовать командой ShowFormDll(Self).








Дата добавления: 2016-03-22; просмотров: 734;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.003 сек.