TURBO PASCAL |
Новости
|
Описания externalОписания external позволяют связывать отдельно скомпилиро- ванные процедуры и функции, написанные на языке ассемблера. Опи- сания external позволяют также импортировать процедуры и функции из DLL. Примечание: Более детальное описания компоновки с программой на языке ассемблера содержится в Главе 25. директива external │ ┌──────────┐ └─>│ external ├┬───────────────────────────────────────────────> └──────────┘│ ┌───────────────────┐ ^ └>│строковая константа├┬───────────────────────┘ └───────────────────┘│ ┌──────┐ ┌─────────┐^ ├>│ name ├─>│строковая├┤ │ └──────┘ │константа││ │ └─────────┘│ │ ┌───────┐ ┌─────────┐│ └>│ index ├>│ целая ├┘ └───────┘ │константа│ └─────────┘ Директива external, состоящая только из зарезервированного слова external, используется в сочетании с директивами {$L имя_файла} для компоновки с процедурами и функциями, реализован- ными в файлах .OBJ. Приведем следующие примеры описаний внешних процедур: procedure MoveWord(var source,dest; count: longint); external; procedure MoveLong(var source,dest; count: longint); external; procedure FillWord(var dest,data: integer; count: longint); external; procedure FillLong(var dest,data: integer; count: longint); external; {$L BLOCK.OBJ} Внешними процедурами следует пользоваться, когда вы хотите объединить большое количество объектных модулей. Если ваши прог- раммы имеют небольшой объем, лучше вместо этого использовать внутренние процедуры. Директивы external, специфицирующие имя динамически компону- емой библиотеки (и, возможно, импортируемое имя или порядковый номер импорта), используются для импорта процедур и функций из динамически компонуемых библиотек. Например, следующая директива external импортирует из DLL с именем KERNEL (ядро Windows) функ- цию с именем GlobalAlloc: function GlobalAlloc(Flags: Word; Bytes: Longint): THandle; far; external 'KERNEL' index 15; В импортируемой процедуре или функции директива external за- нимает место описания и операторной части. В импортируемых проце- дурах или функциях должен использоваться дальний тип вызова, за- даваемый с помощью директивы far в описании процедуры или дирек- тивы компилятора {$F+}. В остальном импортируемые процедуры и функции аналогичны обычным процедурам и функциям. Примечание: Подробнее об импорте функций из DLL расс- казывается в Главе 11. |
(с)Все права защищены По всем интересующим вопросам прошу писать на электронный адрес |