Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Создание динамически подключаемых библиотек (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).






© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.