TURBO PASCAL |
Новости
|
Написание DLLСтруктура DLL Borland Pascal идентичная структуре программы, но DLL начинается вместо заголовка program с заголовка program. Заголовок library указывает Borland Pascal, что нужно создать вы- полняемый файл с расширением .DLL, а не с расширением .EXE, и вы- полняемый файл помечается как DLL. библиотека │ │ ┌─────────────┐ ┌───┐ ┌──────┐ └──>│ заголовок ├──>│ ; ├─┬──────────────────│ блок ├───────> │ библиотеки │ └───┘ │ ┌──────────┐ ^ └──────┘ └─────────────┘ └──>│ оператор ├─┘ │ uses │ └──────────┘ ┌─────────┐ ┌───────────────┐ заголовок ────>│ library ├──>│ идентификатор ├─────> процедуры └─────────┘ └───────────────┘ В приведенном ниже примере приведена очень простую 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 и B.Pascal 7 & Objects/LR - 186 - коду инициализации библиотеки. Например: 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. |
(с)Все права защищены По всем интересующим вопросам прошу писать на электронный адрес |