Динамический импорт

Модуль импорта

При разработке динамически загружаемых библиотек нужно всегда думать об их удобном использовании. Если в библиотеке не две процедуры, а сотня, и нужны они не в одной программе, а в нескольких, то в этом случае намного удобнее вынести external -объявления процедур в отдельный модуль, подключаемый ко всем программам в секции uses. Такой модуль условно называют модулем импорта. Кроме объявлений внешних подпрограмм он обычно содержит определения типов данных и констант, которыми эти подпрограммы оперируют.

Модуль импорта для библиотеки SortLib будет выглядеть так:

unit SortLib;

Interface

procedure BubleSort(var Arr: array of Integer); stdcall;

procedure QuickSort(var Arr: array of Integer); stdcall;

procedure HelloWorld(AForm: TForm); stdcall;

Implementation

const DllName = 'SortLib.dll';

Procedure BubleSort(var Arr: array of Integer); external

DllName name 'BubleSortIntegers';

Procedure QuickSort(var Arr: array of Integer); external

DllName name 'QuickSortIntegers';

procedure HelloWorld(AForm: TForm); external DllName;

End.

Выполняемый файл библиотеки должен всегда сопровождаться модулем импорта, чтобы потребитель мог разобраться с параметрами подпрограмм и правильно воспользоваться библиотекой.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: