Конспект лекций для студентов специальности 5В070200 Автоматизация и управление Алматы 2015


Лекция №15. Библиотеки системы программирования



Pdf көрінісі
бет32/33
Дата13.03.2023
өлшемі0,92 Mb.
#73886
түріКонспект
1   ...   25   26   27   28   29   30   31   32   33
Байланысты:
PXcdfzCNmVjtZ8sMK5nLG1UywOruSq

Лекция №15. Библиотеки системы программирования 
 
Цель: ознакомиться с назначением, составом и технологией применения 
наиболее используемых библиотек системы программирования. 
Рассмотрим возможный состав библиотек на примере системы 
программирования Borland С++.
Все библиотеки, которые Borland С++ 
предоставляет своим пользователям, можно разделить на две части: 
стандартную библиотеку и дополнительные библиотеки. Стандартная 
библиотека системы программирования С++ организационно представляет 
собой множество библиотек, в котором выделяются три основные 
подмножества: стандартная библиотека языка С, графическая библиотека, 
библиотеки классов С++. 
Стандартная библиотека языка С состоит из ряда библиотек, 
содержащих математические функции, функции обработки строк, функции 
стандартного ввода-вывода, функции управления памятью, различные 
БОМ 
ОМ 
Редактор 
связей 
ЗМ 
БЗМ 
БОМ 
ОМ 
Связующий 
загрузчик 
Выполняющаяся 
программа 
БЗМ 
АМ 
Абсолютный 
загрузчик 
Выполняющаяся 
программа 
ЗМ 
Перемещающий
загрузчик 
Выполняющаяся 
программа 
а) 
б) 
в) 
г) 


59 
вспомогательные функции. Многие из перечисленных задач более эффективно 
решаются средствами других доступных библиотек, поэтому эта библиотека в 
значительной степени служит средством поддержания преемственности 
языков программирования, аппаратных компьютерных решений и 
операционных систем. 
Графическая библиотека пришла в системы программирования из MS 
DOS. Она служит для формирования графического интерфейса пользователя 
(GUI – Graphic User Interface), а также обеспечивает управление графической 
системой, построение изображений на экране и получение параметров 
изображения. Функции этой библиотеки также перекрываются более 
развитыми средствами современных операционных систем. 
Библиотека классов С++ представляет собой ряд библиотек: библиотеку 
классов ввода-вывода, ориентированного на поток; библиотеку контейнерных 
классов; библиотеку специализированных классов. В программах на языке 
С++ для организации ввода-вывода можно использовать функции как 
стандартной библиотеки С, так и библиотеки классов С++. Особенность 
применения классов состоит в том, что форма ввода-вывода объекта 
определяется не форматами, которые должен указать программист, а 
автоматически - классом объекта. Контейнерные классы обеспечивают работу 
с динамически изменяемыми данными (списками, очередями, стеками и т.п.). 
Специализированные классы ориентированы на обработку строковых данных 
и комплексных данных. 
Дополнительные библиотеки системы программирования С++ являются 
либо принадлежностью операционной системы, либо ее специальными 
расширениями. Так, библиотека объектов Windows (OWL – Object Windows 
Library) входит в состав операционной системы, она поддерживает единый 
прикладной программный интерфейс (АРI - Application Program Interface) 
Windows, известный как Win16 АРI и Win32 АРI. Система программирования 
дает пользователям средства этой библиотеки для формирования внешнего 
оконного интерфейса разрабатываемых программ. Библиотека поддержки 
технологии связывания и внедрения объектов (OLE – Object Linking and 
Embedding) представляет собой расширение операционной системы. OLE -
технология позволяет устанавливать «нетрадиционные» связи между 
программами. Каждая программа может искать и использовать необходимые 
ей программные ресурсы в других доступных программах, а также готова 
предоставить свои ресурсы другим программам. Технология ориентирована на 
поддержку гибких средств обеспечения внутреннего интерфейса. 
В зависимости от времени, когда происходит подключение библио-
течных функций к программе, различают библиотеки статические и ди-
намические. Необходимые программе функции статических библиотек 
помещает в нее редактор связей. Эти функции составляют часть выполняемого 
модуля. Функции динамических библиотек подключаются к вызывающей их 
программе только во время ее выполнения. Библиотеки, функции которых 
работают во время выполнения программы, называют библиотеками времени 


60 
выполнения (RTL - Run Time Library). Многообразие библиотек RTL 
определяется широким спектром задач, для которых они предназначены, а 
также множеством возможных версий одной и той же библиотеки:
- статические или динамические библиотеки; 
- 16- или 32-разрядные библиотеки; 
- библиотеки для плоской (f - flat), средней (m - middle), большой (l - 
large) или других моделей памяти;
- библиотеки с диагностикой или без диагностики; 
- библиотеки для однозадачных или мультизадачных приложений. 
Формируемые на основе комбинаций признаков варианты библиотек 
обладают различными свойствами, предполагающими их применение в той 
или иной операционной и технической среде. Актуальные варианты 
библиотеки существуют одновременно, менее актуальные можно при 
необходимости достаточно быстро генерировать.
Статическая библиотека системы программирования Borland С++ 
хранится как библиотека объектных модулей, размещенная в lib-файле. 
Необходимые функции вызываются в программе явно в соответствии с 
общими правилами языка программирования и описаниями функций. Вызовы 
многих библиотечных функций включает в программу компилятор, они 
служат для формирования типовых фрагментов объектных программ. 
Правильность вызова функции компилятор проверяет по прототипам 
заголовков функций. Прототипы хранятся в заголовочных файлах с 
расширением h, которые включаются в программу с помощью 
препроцессорного оператора #include
Динамическая библиотека системы программирования Borland С++ 
хранится как совокупность функций в форме, подобной загрузочному 
модулю, и чаще всего располагается в dll-файле. Вызов необходимых 
функций осуществляется с помощью соответствующих заголовочных файлов 
посредством #include, по аналогии со статической библиотекой. Однако если 
в программе не отметить каким-либо особым образом функции динамических 
библиотек, то компоновщик будет пытаться обрабатывать ссылки на них как 
ссылки на функции статических библиотек и обнаружит неудовлетворенные 
внешние связи. Идентификация запрашиваемых динамических функций 
осуществляется следующим образом. Из динамических библиотек 
заблаговременно создают особую статическую библиотеку, содержащую 
имена и некоторую другую информацию о функциях динамических 
библиотек. Такая библиотека называется библиотекой импорта и хранится в 
lib-файле. В Borland С++ заготовлены библиотеки импорта для многих 
вариантов динамических библиотек, например import.lib и import32.lib для 
библиотек Windows. Функция динамической библиотеки, используемая в 
программе, называется импортируемой. Эту же функцию в самой библиотеке 
называют экспортируемой. Библиотека импорта содержит информацию о 
функциях, которые соответствующие динамические библиотеки могут 
экспортировать. Обычно библиотеки импорта располагают в одном каталоге 


61 
со 
статическими 
библиотеками. 
Используя 
библиотеки 
импорта, 
компоновщик формально удовлетворяет в программе внешние ссылки на 
функции динамических библиотек и готовит для динамического загрузчика 
информацию о фактически вызываемых функциях. Импортируемые 
программой функции можно указать компоновщику другим способом: в 
секции импорта особого текстового файла - файла определения модуля с 
расширением def. Загрузочный модуль, оформленный как приложение 
Windows
(
В
РЕ-формате), содержит таблицу импорта, специально 
предназначенную для динамического загрузчика. Когда программа 
запускается, включенные в нее функции статических библиотек выполняются 
обычным образом, как части этой программы. Динамически вызываемые 
функции могут быть загружены в память либо все одновременно (сразу после 
запуска программы), либо по одной (только в момент вызова в ходе 
выполнения программы). 
Аналогичный набор библиотек имеется во всех современных системах 
программирования.


62 


Достарыңызбен бөлісу:
1   ...   25   26   27   28   29   30   31   32   33




©emirsaba.org 2024
әкімшілігінің қараңыз

    Басты бет