Borland Pascal. Руководство пользователя

         

Динамически компонуемые библиотеки DOS


Динамически компонуемые библиотеки (DLL) традиционно были частью разработки программ Windows. С помощью Borland Pascal вы сможете создавать DLL для DOS.

Библиотеки DLL загружаются на этапе выполнения отдельно от ваших файлов .EXE и могут совместно использоваться несколькими прикладными программами. DLL для DOS работают в защищенном режиме DOS и полностью совместимы с DLL для Windows, что позволяет вам совместно использовать DLL для прикладных программ DOS и Windows. О динамически компонуемых библиотеках рассказывается в Главе 11 "Динамически компонуемые библиотеки" в "Руководстве по языку".



Добавления к языку Паскаль


Borland Pascal имеет несколько новых расширения языка, об- легчающих написание программ:

* Открытые параметры. Открытые параметры позволяют переда- вать в процедуру или функцию строки и массивы переменных размеров. Об этих параметрах рассказывается в Главе 9 "Процедуры и функции", в разделе "Открытые параметры" кни- ги "Руководство по языку".

* Стандартная директива public. В Turbo Pascal 6.0 и Turbo Pascal for Windows допускаются секции компонентов объектов private. Borland Pascal вводит секции компонентов объектов public, не имеющие ограничений по области действия описан- ных в них полей и методов. Если вы находите это удобным, в объектах можно чередовать секции компонентов public и private. Подробнее о новой стандартной директиве public рассказывается в разделе "Компоненты и область действия" Главы 4 "Типы" в "Руководстве программиста".

* Зарезервированное слово inherited. Зарезервированное слово inherited может использоваться внутри метода для ссылки на предка объектного типа метода. См. раздел "Активизация уточненного метода" Главы 4 "Типы" книги "Руководство по языку".

* Параметры-константы. Процедуры и формулы могут использо- вать параметры-константы: группе параметров предшествует зарезервированное слово const, за которым следует тип. Па- раметры-константы защищают от случайных присваиваний фор- мальному параметру, и в некоторых случаях это позволяет компилятору генерировать более эффективный код. См. раздел "Параметры" в Главе 9 "Процедуры и функции" в "Руководстве по языку".

* Динамические методы и таблицы динамических методов (DMT). Если вы работали с Turbo Pascal for Windows, то уже знаете о динамических методах и таблицах динамических методов DMT. В Borland Pascal их могут также использовать програм- мы для DOS.

Динамические методы отличаются от виртуальных методов спо- собом диспетчеризации динамических методов на этапе выпол- нения. Вместо построения для динамических методов таблицы виртуальных методов (VMT) компилятор строит DMT. Использо- вание DMT уменьшает потребности вашей прикладной программы в памяти при программировании с объектами. Более подробно о динамических методах рассказывается в разделе "Динами- ческие методы" в Главе 4 ("Типы") "Руководства по языку". Чтобы узнать подробности о таблицах динамических методов, см. раздел "Таблицы динамических методов" в Главе 21

("Вопросы использования памяти") "Руководства по языку".



Что нового в Borland Pascal


Borland Pascal with Objects - это профессиональная объект- но-ориентированная система программирования для реального и защи- щенного режима DOS и Windows. Если вы работаете с программными продуктами Turbo Pascal или Turbo Pascal for Windows, то из дан- ной главы вы узнаете о новых средствах Borland Pascal и о том, где найти информацию о них.



Компилятор командной строки, работающий в защищенном режиме




Компилятор командной строки BPC.EXE, работает в защищенном режиме, благодаря чему очень большие программы имеют достаточно памяти для успешной компиляции. Аналогично IDE для DOS, работаю- щей в защищенном режиме, BPC.EXE может создавать прикладные прог- раммы реального режима DOS, Windows и защищенного режима DOS. О компиляторе, работающем в режиме командной строки, рассказывается в Главе 3 "Компиляторы, работающие в режиме командной строки" "Справочного руководства программиста".



Новые директивы компилятора


Borland Pascal имеет пять новых директив компилятора. Под- робнее о них рассказывается в Главе 2 ("Директивы компилятора") "Справочного руководства программиста":

* Директива $P (открытые строковые параметры) управляет смыслом параметров-переменных, описанных с помощью ключе- вого слова string.

* Директива $T (указатели с проверкой типа) управляет типами значений указателей, генерируемых операцией @.

* Директива $Q (проверка переполнения) управляет генерацией кода проверки переполнения для отдельных арифметических операций.

* Директива $K (эффективные вызовы) управляет генерацией эф- фективных вызовов процедур и функций, экспортируемых при- ложением Windows. Подробнее об обработке в Borland Pascal эффективных вызовов рассказывается в разделе "Код входа и выхода" Главы 22 ("Вопросы управления") "Руководства по языку".

* Директива $Y (информация об идентификаторе) генерирует в компилируемой программе или модуле ссылочную информацию идентификатора, благодаря чему ObjectBrowser может выво- дить на экран определение идентификатора и ссылочную ин- формацию для данного программного модуля.



Новые модули


Благодаря модулю Strings программисты, использующие Turbo Pascal for Windows, могли работать со строками с завершающим ну- лем (в стиле Си). Теперь модуль Strings могут использовать как программисты, работающие в Windows, так и работающие в DOS. Под- робнее о строках с завершающим нулем рассказывается в Главе 18 "Использование строк с завершающим нулем" в "Руководстве по язы- ку". Полную информацию о строках с завершающим нулем вы можете получить, прочитав Главу 1 ("Справочник по библиотеке") "Справоч- ного руководства программиста".

Программисты, работающие с Turbo Pascal for Windows, уже знакомы с модулем WinDos. Программисты, работающие в DOS, также могут использовать модуль WinDos для реализации операционных сис- тем и подпрограмм обработки файлов. Чтобы выяснить, следует вам использовать модуль WinDos или Dos, прочитайте Главу 16 "Интер- фейс с DOS" "Руководства по языку". Все процедуры и функции под- робно поясняются в Главе 1 ("Справочник по библиотеке") "Справоч- ного руководства программиста".

Модуль WinAPI дает вам возможность прямого доступа к расши- рениям DOS защищенного режима. Интерфейс WinAPI разработан как подмножество API (интерфейс прикладных программ) Windows, чтобы облегчить написание переносимых приложений и двоично-совместимых DLL. О модуле WinAPI рассказывается в Главе 17 "Программирование в DOS в защищенном режиме" "Руководства по языку". Более полную информацию о процедурах и функциях модуля WinAPI можно найти в Главе 1 ("Справочник по библиотеке") "Справочного руководства программиста".

Модуль WinPrn позволяет послать информацию, выводимую вашей программой Windows, на выбранный принтер. О печати в программах Windows рассказывается в Главе 14 ("Ввод и вывод") "Руководства по языку". См. также расширенные пояснения по процедурам WinPrn в Главе 1 ("Справочник по библиотеке") "Справочного руководства программиста".

Модуль Win31 обеспечивает интерфейс с дополнительными прог- раммами API, которые можно найти в DLL KERNEL и USER Windows 3.1. Приложения, использующие модуль Win31, не будут работать под Windows 3.0. Подробности о модуле Win31 вы можете узнать в спра- вочной системе Borland Pascal.

Остальные расширения API Windows 3.1 Borland Pascal поддер- живает в нескольких модулях (информацию о них вы можете получить в справочной системе Borland Pascal):

ColorDlg LZExpand ShellAPI CommDlg MMSystem Stress Cpl OLE TooHelp DDEML PenWin Ver Dlgs Print WinMem32



Новые подпрограммы модуля System


Модуль System содержит семь новых процедур и функций. Вы мо- жете найти их в Главе 1 ("Справочник по библиотеке") "Справочного руководства программиста".

* Процедура Assigned выполняет проверку и анализ того, со- держит ли указатель или процедурная переменная nil.

* Процедура Break завершает оператор for, while или repeat.

* Процедура Continue продолжает следующие итерации оператора for, while или repeat.

* Процедура Include включает элемент в множество.

* Процедура Exclude исключает элемент из множества.

* Функция High возвращает наивысшее значение в диапазоне ар- гумента.

* Функция Low возвращает низшее значение в диапазоне аргу- мента.



Новые средства и утилиты


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

* Утилита WinSight. WinSight - это инструментальное средство отладки, которое дает вам информацию об окнах, классах и сообщениях. Используйте ее для изучения новых приложений Windows (ваших или чужих), чтобы увидеть как создаются и используются окна и классы окон, и какие сообщения получа- ют окна во время выполнения программы.

* Утилита WinSpector. С помощью WinSpector вы можете прове- рить приложение Windows после завершения его с невосста- навливаемой ошибкой (Unrecoverable Application Error - UAE). Это поможет вам понять причину ошибки.

Borland Pascal также включает в себя обновленные версии сле- дующих инструментальных средств:

* Turbo Debugger (Турбо отладчик) включает отладчик TDW, ко- торый может отлаживать прикладные программы Windows, и TDX, который может отлаживать прикладные программы защи- щенного режима DOS.

* Turbo Profiler (Турбо профилировщик), который включает в себя два профилировщика - один для программ DOS, а другой для программ Windows.

* Turbo Assembler (Турбо ассемблер), добавляющий к коду ас- семблера объектно-ориентированное программирование.

* Resource Workshop (Пакет разработчика ресурсов), работаю- щий в среде Windows и способный создавать для приложений Windows все ресурсы (диалоговые окна, курсоры, битовые массивы, пиктограммы и т.д.).

| |



Новые средства IDE


В перечисленных IDE вы можете найти следующие новые средс- тва:

* Два средства просмотра объектов ObjectBrowser - одно в IDE для DOS защищенного режима, другое в IDE для Windows. С помощью ObjectBrowser вы можете просматривать в своей программе объекты и модули, проверять свой исходный код, получать полные перекрестные ссылки на каждый используемый в программе идентификатор и видеть свою программу с новой позиции. Об ObjectBrowser для DOS и Windows в данной книге рассказывается ниже.

* Выделение синтаксиса. Во всех интегрированных средах в программах используется цветовое выделение элементов кода, благодаря чему вы можете быстро идентифицировать фрагменты исходного кода. В IDE для Windows вы можете также исполь- зовать синтаксические элементы, выделяемые жирным, наклон- ным шрифтом или подчеркиванием. Во всех IDE вы можете пе- чатать синтаксически выделенный код. О выделении синтакси- са рассказывается в Главе 4 "Программирование в интегриро- ванной интерактивной среде для DOS" и в Главе 5 "Програм- мирование в интегрированной интерактивной среде для Windows".

* Оперативная полоса SpeedBar в IDE для Windows. Эта опера- тивная полоса предоставляет быстрый способ выбора команд меню и других действий с помощью "мыши". Вы можете по сво- ему выбору выводить ее горизонтально, вертикально или в виде свободной палитры, либо даже выключить ее полностью.

* В редакторах для DOS и Windows имеются средства Undo (От- мена) и Redo (Повтор). Если вы сделаете в процессе редак- тирования ошибку, нажмите Undo, и ваша ошибка исчезнет. Нажмите Redo - и она появится вновь.

* Меню инструментальных средств Tools. Инструментальные средства и утилиты, поставляемые с Borland Pascal, вы мо- жете запускать непосредственно из IDE. В IDE для DOS в ме- ню Tools вы можете добавить свои собственные утилиты и из- менить по своему усмотрению оперативные клавиши. О меню Tools IDE для DOS и о меню Tools IDE для Windows рассказы- вается в Главе 4.

* Окно сообщений Messages в IDE для DOS. Окно Messages вы можете использовать для вывода сообщений из таких утилит как GREP. Вы можете выбрать редактирование программной строки со ссылкой на сообщение или отслеживать сообщения в исходном коде при просмотре сообщений.


* Локальные меню во всех интегрированных средах. Простым на- жатием правой кнопки "мыши" или клавиш Alt+F10 вы можете вывести локальное меню со списком команд, относящихся к активному окну.

* Информация об идентификаторах сохраняется от одного сеанса к другому. Это позволяет после выхода и перезапуска IDE вам просматривать, отлаживать или выполнять программы без перекомпиляции.

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

* В интегрированных средах для DOS поддерживаются множест- венные устанавливаемые пользователем справочные файлы. В справочную систему Borland Pascal вы можете загрузить до- полнительные справочные файлы. IDE объединяет тематические указатели вновь загруженных справочных файлов и стандарт- ного системного тематического указателя Help.


Среда разработки программ защищенного режима DOS


С помощью компиляторов командной строки BP.EXE и BPC.EXE вы можете создавать программы, работающие в защищенном режиме DOS без использования оверлеев. Ваши программы смогут, наконец, пре- высить барьер реального режима DOS в 640К.

Для многих ваших программ все, что нужно сделать для созда- ния приложения DOS защищенного режима, это выбор защищенного ре- жима DOS в качестве целевой платформы и установка соответствующих параметров компилятора (см. Главу 4). Возможно, вы захотите про- честь также Главу 17 "Руководства по языку" ("Программирование в защищенном режиме DOS"), которой вопросы, касающиеся защищенного режима, рассматриваются более углубленно.



Три интегрированных интерактивных среды разработки программ


Borland Pascal предоставляет вам три интегрированных инте- рактивных среды разработки программ (IDE):

* BP.EXE, интегрированную среду разработки программ, которая работает в защищенном режиме DOS и генерирует по вашему выбору прикладные программы DOS реального режима, Windows и DOS защищенного режима. IDE защищенного режима означает, что каждое ваше очень большое приложение будет иметь для компиляции достаточно памяти.

* BPW.EXE, интегрированную среду, которая работает под Windows и генерирует по вашему выбору прикладные программы DOS реального режима, Windows и DOS защищенного режима.

* TURBO.EXE, интегрированную среду, которая работает в ре- альном режиме DOS и генерирует только прикладные программы DOS реального режима, работающие только на процессорах 80х86.

Примечание: Для работы IDE DOS защищенного режима ваш компьютер должен иметь процессор 80286 или старше и не ме- нее 2 мегабайт памяти.

Об интегрированных средах для DOS рассказывается в Главе 4 "Программирование в интегрированной интерактивной среде для DOS". О специальных средствах интегрированной среды для Windows вы мо- жете узнать из Главы 5 "Программирование в интегрированной инте- рактивной среде для Windows".



Улучшения ObjectWindows


В иерархию ObjectWindows добавлены новые объекты. К сущест- вующим объектам также добавлены некоторые новые возможности.

Модуль WObjects больше не существует. Существующий у вас ис- ходный код можно будет успешно перекомпилировать, если вы замени- те каждую ссылку на WObjects модулями OWindows, ODialogs, OMemory и Objects.

ObjectWindows содержит новые средства. Узнать о них можно, прочитав "Руководство по программированию с использованием ObjectWindows":

* Поддержка проверки допустимости данных. Ваши приложения ObjectWindows могут обеспечить получение для обработки до- пустимых данных.

* Печать объектов. Благодаря новым объектам печати выводить данные на печать в программах ObjectWindows стало проще.

* Поддержка специализированных управляющих элементов Windows фирмы Borland. Ваши программы Windows могут иметь вид, со- ответствующий стандарту Borland.



Улучшения в библиотеке исполняющей системы


Borland Pascal имеет три библиотеки исполняющей системы: TURBO.TPL для программ DOS реального режима, TPW.TPL для программ Windows и TPP.TPL для программ DOS защищенного режима.

Улучшения библиотек исполняющей системы касаются следующих элементов:

* более быстрого ввода-вывода текстового файла;

* более быстрой функции Pos;

* оптимизации 80386 для операций умножения, деления, сдвига влево и вправо со значениями типа Longint.



Улучшения в Turbo Vision


В Turbo Vision 2.0 в иерархию добавлены новые объекты, а к существующим объектам добавлены некоторые новые возможности. Из- менения существующий объектов имеют обратную совместимость, поэ- тому существующий код Turbo Vision следует компилировать без из- менений, а существующие потоки и ресурсы загружаются без ошибок.

В Turbo Vision 2.0 имеются некоторые новые средства. О них рассказывается в "Руководстве по программированию с Turbo Vision":

* Поддержка проверки допустимости данных. Ваши приложения Turbo Vision могут обеспечить получения для обработки до- пустимых данных.

* Кнопки с независимой фиксацией с множеством состояний. Кнопки с независимой фиксацией могут иметь состояния, от- личные от "выбрана" и "не выбрана". IDE защищенного режима DOS (BP.EXE) использует кнопки с независимой фиксацией с множеством состояний в своем диалоговом окне параметров компилятора Compiler Options.

* Средство просмотра схемы объектов. Для вывода схем ваши приложения могут использовать два объекта - TOutlineViewer и TOutline. Эти объекты использует средство DOS ObjectBrowser.

* Поддержка версий объектов в потоках. Даже если ваши объек- ты были созданы с помощью Turbo Vision 1.0, ваши программы все равно смогут считывать их как объекты, совместимые с Turbo Vision 2.0.

* Новое учебное руководство и пересмотренная документация. Вы увидите, что можно быстро изучить и освоить Turbo Vision.



Усовершенствования компилятора


Кроме расширений языка Borland Pascal и добавления новых ди- ректив компилятора, в сам компилятор также внесены улучшения:

* Компилятор позволяет выполнять более простую компоновку с Си и ассемблером путем передачи в ваш выполняемый файл ин- формации о номерах строк .OBJ. Таким образом, вы можете использовать встроенные отладчик для выполнения по шагам кода языка Си и ассемблера. См. в данной книге Главу 6 "Отладка в интегрированной среде".

* Когда правым операндом операции in является константа мно- жественного типа, компилятор генерирует более эффективный код. См. раздел "Встраивание констант множественного типа" в Главе 23 ("Оптимизация кода") в "Руководстве по языку".

* Компилятор генерирует более эффективный код для малых мно- жеств. О малых множествах подробнее рассказывается в Главе 23 ("Оптимизация кода") в "Руководстве по языку".

* Компилятор допускает неограниченную вложенность модулей.

* Оператор uses в разделе implementation модуля не вызывает теперь циклической ссылки на модуль.

* В определенных ситуациях компилятор подавляет операции из- быточной загрузки указателей. См. Главу 23 ("Оптимизация кода") "Руководства по языку".