- •1.1. _Классика. Общие сведения
- •1.1.3. Элементарные функции ввода-вывода
- •1.2. Функции
- •Void surface(int dl, int VI, int shi);
- •1.3.1. Задание значений аргумента функций по умолчанию
- •1.3.2. Перезагружаемые функции (function overloading)
- •1.3.4. Допускается использование функции с различным количеством аргументов.
- •1.3.6. Дружественные функции (friend)
- •1.3.9. Виртуальные (virtual) функции
- •1.3.8. Шаблоны.
- •1.3.10. Абстрактные классы
- •1.4. Указатели (ссылки). Массивы.
- •Int fprintf ([указатель-На-Входной-Поток], Управляющая-строка, [,Имя-переменной-1, [Имя-переменной-2…]]);
- •Int cprintf (УправляющаяСтрока[,Имя-переменной-1, [Имя-переменной-2…]]);
- •1.6.1 Директива Include
- •1.6.2 Директивы #define и #undef
- •1.6.3 Условные Директивы
- •1.8..Проект (создание проекта классическими средствами языка с)
- •1 .8.1. Классы памяти
- •1.8.3. Проект
- •Раздел 2. Классы
- •31.10.11 Кр Связан с созданием классов и про ооп
- •Лекция 8 от 17.10.2011
- •7.2.2. Динамически присоединенные библиотеки
7.2.2. Динамически присоединенные библиотеки
«Out of memory»
Оверлеи – это части одной программы, которые разделют общую области оперативной памяти
Назначения:
Снизить требования к RAM
Создать программу значительно превышающую объемы RAM.
Все прогарммы делился на объем базового модуля и размер максимального статистического оверлея.
Оверлеии делилсь на 2 большые группы : статические и динамические. Статических могло быть много, в работе только 1 статический оверлей мог находится в памяти.
Недостатки статических оверлеев:
Требуется глубокая системная проработка
Программы не обладают гибкостью
Отсутсвует возможность рекурсивного вызова.
Динамические оверлеи допускают перекреснуу ссылку и из механизм соответсвует механизму виртуальной операционной системе.
Динамические оверлеи могут загружать всю память, то есть загружают до тех пор пока происходит вывоз оверляя… Допустим рекурсивный вызов, от нас не тербуется глубокя системная проработка.
Главный недостаток статистическоо связывания заключается в неэффективности использования ресурсов компьютера при одновременной загрузки одного и того же приложения.
В современных программых системах принцип модульности реалтзуется на основе инструментария динамически присоединенных библиотек DLL.
В этом случае функция и ресурсы проекта могут быт ьразмещены отдельныех исполняемых файлах, которые имеют специальное разрешения DLL.
Также преимуществом DLL объектов является то, что они могут быть написаны на различных языках программирования.
Как и ранее в С-Билдер существует 2 способа испольвания DLL библиотек:
Динамическое присоединение
Статическое присоединение- означает, что все DLL проекта загружаются вместе со всеми модулями проекта (С одной стороны будет дольше загуражаться, выполяется быстрее; может загрузить всю RAM. Такой проект тяжелее продать)
Динамическе присоединение отличается тем, что DLL- компоненты
Пример создания библиотеки
Технология создания DLL библиотеки
Зайти в ГМ/Выбрать файл/New/Other.
DLL Wizard позволяет дополнительно выбрать язык создания (С или С++) и общий стиль содания DLL- компоненты (Microsoft Visual C или любому другому)
На экране будет создана Unit- компоненты, в которой будет сделано предупреждение об особенностях использавия
Отредактировать текст программы в сторону его упращения. Например вычеркнуть повторное включение файла VCLH так же у нсас не будет открытой формы 1, где нет функции with main.
Отредактировать заголовочный файл в библиотеке
Проверить произошло ли переключение опции создании выходного файла проекта с исполняемого файла с расширением exe на DLL компаненты. Когда создаем проект по умоланию создается заголовочный файл с расширение exe.
Включение опции DLL автоматически включает файл с расширением *.LIB для статического присоединения DLL.
По умолчанию когда мы работаем исполняемый файл тербует С-Билдер на компе, поэтому когда до приносим сюда, файл может косячит. Для того, чтобы сделать исполняемый файл независимым входит в главное меню,выбираем опции объекта ….
Произвести отладку созданного проекта. В этом случае на компьютере появится DLL- компоненты и библиотечный файл с именем проекта
Как организовать обращение к объектам компонентам
В головном файле … если данная строка в проекте не появилась, то ввести её в ручную
