Руководство по языку B.Pascal 7

       

Написание DLL


Структура DLL Borland Pascal идентичная структуре программы, но DLL начинается вместо заголовка program с заголовка program. Заголовок library указывает Borland Pascal, что нужно создать вы- полняемый файл с расширением .DLL, а не с расширением .EXE, и вы- полняемый файл помечается как DLL.

библиотека ¦ ¦ -------------- ---- ------- L-->¦ заголовок +-->¦ ; +-T------------------¦ блок +-------> ¦ библиотеки ¦ L---- ¦ ----------- ^ L------- L-------------- L-->¦ оператор +-- ¦ uses ¦ L-----------

---------- ---------------- заголовок ---->¦ library +-->¦ идентификатор +-----> процедуры L---------- L----------------

В приведенном ниже примере приведена очень простую DLL с двумя экспортируемыми функциями Min и Max, которые вычисляют наи- меньшее и наибольшее из двух целочисленных значений.

library MinMax;

function Min(X, Y: Integer): Integer; export; begin if X < Y then Min := X else Min := Y; end;

function Max(X, Y: Integer): Integer; export; begin if X > Y then Max := X else Max := Y; end;

exports Min index 1, Max index 2;

begin end.

Обратите внимание на использование для подготовки Min и Max, для экспорта ключевого слова export, и на оператор exports, ис- пользуемый для фактического экспорта двух подпрограмм, указываю- щий, для каждой из них, необязательный порядковый номер.

Хотя предыдущий пример этого не показывает, библиотека может состоять из нескольких модулей. В таких случаях исходный файл библиотеки часто сводится к оператору uses, оператору exports и коду инициализации библиотеки. Например:

library Eritors;

uses EdInit, EdInOut, EdFormat, EdPrint;

exports InitEditors index 1, DoneEditors index 2, InsertText index 3, DeleteSelection index 4, FormatSelection index 5, PrintSelection index 6, . . . SetErrorHandler index 53;

begin InitLibrary; end.



Содержание раздела