TURBO PASCAL

Новости

Программы   

Turbo Pascal 

Игры

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

Странности

FAQ

Ссылки

Форум

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

Рассылка

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

Об авторе

 

 

Разделы инициализации в оверлейных модулях 

             Аналогично статическим модулям оверлейные модули  могут  со-
        держать секцию  инициализации.  Хотя оверлейный код инициализации
        не отличается от обычного кода инициализации, администратор овер-
        леев должен первоначально инициализироваться таким образом, чтобы
        он мог загружать и выполнять оверлейные модули.

             Взяв в  качестве  примера  ранее   рассмотренную   программу
        Editor,  предположим,  что  модули  EdInOut и EdMain содержат код
        инициализации.  При этом требуется, чтобы процедура OvrInit вызы-
        валась  перед кодом инициализации модуля EdInOut,  и единственный
        способ осуществить это состоит во введении  дополнительного  нео-
        верлейного  модуля,  который  следует  перед EdInOut и вызывает в
        своем разделе инициализации процедуру OvrInit.

             unit EdInit;
             interface
             implementation
             uses Overlay;
             const
               OvrMaxSize = 80000;
             begin
               OvrInit('EDITOR.OVR');
               OvrInitEMS;
               OvrSetBuf(OvrMaxSize);
             end.

             В операторе uses программы модуль  EdInit  должен  следовать
        перед всеми оверлейными модулями:

             program Editor;
             {$F}
             uses
              Overlay,Crt,Dos,EdInit,EdInOut,EdFormat,EdPrint,EdMain;
             {$O EdInOut }
             {$O EdFormat }
             {$O EdPrint }
             {$O EdFind }
             {$O EdMain }

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

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

             Намного более  привлекательный  подход состоит в том,  чтобы

        собрать весь код инициализации в оверлейный модуль инициализации,
        который вызывается только один раз при загрузке программы и к ко-
        торому затем программа не обращается.

Содержание

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

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

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

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

Hosted by uCoz