![]() Главная страница Случайная страница КАТЕГОРИИ: АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
Создание динамически подключаемых библиотек (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).
|