TURBO PASCAL

Новости

Программы   

Turbo Pascal 

Игры

Документация   

Странности

FAQ

Ссылки

Форум

Гостевая книга

Рассылка

Благодарности

Об авторе

 

 

Описания 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.

Содержание

На первую страницу

Rambler's Top100 Rambler's Top100
PROext: Top 1000

(с)Все права защищены

По всем интересующим вопросам прошу писать на электронный адрес

Hosted by uCoz