- •Л. Б. Бузюков, о. Б. Петрова
- •Учебное пособие
- •Предисловие
- •Глава 1. Введение в язык с
- •1.1. История создания и особенности языка с
- •1.3. Элементы языка с
- •1.3.1. Основные символы
- •1.3.2. Ключевые слова
- •1.3.3. Идентификаторы
- •1.3.4. Константы
- •1.3.5. Лексемы
- •1.3.6. Комментарии
- •Глава 2. Типы данных языка c
- •2.1. Числовые типы данных
- •2.2. Объявление переменных
- •2.3. Данные целого типа
- •2.4. Данные вещественного типа
- •Глава 3. Выражения
- •3.1. Операции
- •3.1.1. Арифметические операции
- •3.1.2. Операция присваивания
- •Глава 4. Составление простейших программ
- •4.1. Препроцессор и его функции
- •4.2. Основные директивы препроцессора
- •4.2.1. Директива include
- •4.2.2. Директива define
- •4.2.3. Директива undef
- •4.3. Структура и правила составления программ
- •4.3.1. Структура функции
- •4.3.2. Функция main()
- •4.3.3. Структура простой программы
- •4.3.4. Правила записи объявлений, операторов и комментариев
- •4.3.5. Пример простейшей программы
- •Глава 5. Средства ввода/вывода
- •5.1. Общие замечания
- •5.2. Функция форматированного вывода printf()
- •5.2.1. Основные форматы
- •5.2.2. Модификации форматов
- •5.3. Функция форматированного ввода scanf()
- •Глава 6. Управляющие операторы
- •6.1. Условные операторы
- •6.1.1. Логические выражения
- •6.1.2. Формы оператора if
- •6.1.3. Оператор выбора switch
- •6.2. Операторы цикла
- •6.2.1. Оператор while
- •6.2.2. Оператор for
- •6.2.3. Оператор do-while
- •6.3. Операторы перехода
- •6.3.1. Оператор break
- •6.3.2. Оператор continue
- •6.3.3. Оператор return
- •6.3.4. Применение оператора goto и меток
- •Глава 7. Функции
- •7.1. Основные понятия
- •7.2. Определение функции
- •7.3. Прототип функции
- •7.4. Вызов функции
- •Глава 8. Классы памяти
- •8.1. Логическаяструктура памяти программы
- •8.2. Особенности классов памяти
- •8.3. Объявления переменных
- •8.4. Объявления функций
- •8.5. Время жизни и область видимости программных объектов
- •8.6. Инициализация глобальных и локальных переменных
- •Глава 9. Указатели
- •9.1. Операция получения адреса
- •9.2. Операции над указателями
- •Глава 10. Массивы
- •10.1. Общие сведения о массивах
- •10.2. Одномерные массивы
- •10.3. Двумерные массивы
- •10.4. Массивы и указатели
- •10.5. Массивы и функции
- •Глава 11. Строки
- •11.1. Представление символьной строки при помощи одномерного массива
- •11.2. Указатель на символьную строку
- •11.3. Ввод/вывод символьных строк
- •11.4. Массивы символьных строк
- •11.5. Функции работы состроками
- •Глава 12. Структуры
- •12.1. Определение структуры
- •12.2. Структуры и функции
- •12.3. Указатели на структуру
- •12.4. Массивы структур
- •12.5. Вложенные структуры
- •12.6. Использование синонима типа
- •12.7. Объединения
- •Глава 13. Файлы
- •13.1. Работа с файлами
- •13.2. Функции ввода/вывода
- •Глава 14. Динамическая память
- •14.1. Распределение памяти
- •14.2. Функции управление памятью
- •Глава 15. Проект
- •15.1. Основы создания проекта
- •15.2. Пример создания проекта
- •Глава 17. Основы объектно-ориентированного программирования
- •17.1. Объектно-ориентированный подход
- •17.3. Конструкторы и деструкторы
- •17.4. Инкапсуляция
- •17.5. Полиморфизм
- •17.6. Наследование
- •17.7. Виды взаимодействия классов
- •17.8. Способы графического представления объектно-ориентированной задачи
- •18.2. Библиотека Win32 api
- •18.3. Библиотека owl
- •18.4. Библиотека vcl
- •18.5. Библиотека clx
- •18.6. Библиотека mfc
- •18.7. Библиотека OpenGl
- •19.3. Создание проекта
- •19.4. Редактирование проекта
- •19.5. Компиляция и выполнение программы
- •19.6. Файловая структура проекта
- •19.7. Создание консольного приложения
- •Глава 20. Разработка приложений для операционных систем windows
- •20.1. Взаимодействие программы и Windows
- •20.2. Компоненты библиотеки Win32 api
- •20.3.Функция WinMain()
- •20.4. Оконная процедура
- •20.5. Структура программы для ос Windows
- •20.6. Ресурсы Windows
- •20.7. Взаимодействие прикладной программы и устройств в Windows
- •Глава 21. Создание приложений для ос windows на основе библиотеки mfc
- •21.1. Обзор классов библиотеки mfc
- •21.2. Класс cString
- •21.3. Класс cFile
- •21.4. Класс cPoint
- •21.5. Класс cRect
- •21.7. Приложение, основанное на диалоге
- •21.8. Использование в приложении элементов управления
- •21.9. Мастер классов mfc ClassWizard
- •21.10. Установка начального значения элементам управления
- •21.11. Элементы управления Picture
- •21.12. Элемент управления Group Box
- •21.13. Элемент управления Radio Button
- •21.14. Элемент управления Check Box
- •21.15. Элемент управления List Box
- •21.16. Создание меню
- •21.17. Приложение с двумя диалоговыми панелями
- •21.18. Приложение sdi
- •21.19. Создание панели инструментов
- •21.20. Приложение mdi
- •21.21. Контекстыустройств в mfc
- •21.22. Графические объекты Windows в mfc
- •21.23. Графические операции в mfc
- •П.1. Основы методологии конструирования программ
- •П.1.1. Основные понятия. Программа и алгоритм
- •П.1.2. Этапы разработки программ
- •П.2. Алгоритмы
- •П.2.1. Алгоритм и его свойства
- •П.2.2. Способы описания алгоритмов
- •П.2.3. Средства графического изображения алгоритмов Схемы алгоритмов
- •Псевдокоды
- •Структурограммы
- •П.3. Основные приемы программирования
- •П.3.1. Разновидности структур программирования
- •П.3.2. Программирование линейных и разветвляющихся процессов
- •П.3.3. Программирование циклических процессов
- •Арифметический цикл (цикл с параметром)
- •Итерационный цикл
- •Вложенный цикл
- •Литература
19.5. Компиляция и выполнение программы
Компиляция проекта может быть запущена с помощью панели инструментов, горячих клавиш или главного меню. Рассмотрим возможности по управлению процессом компиляции с помощью команд меню.
Build/Compile – компиляция файла, находящегося в активном окне,
Build/Build – компиляция всех файлов проекта, которые были созданы или изменены после последней компиляции.
Build/Rebuild All – компиляция всех файлов проекта без исключения. Иногда после внесения изменений в проект и компиляции в режиме Build не удается получить желаемый результат. В этом случае рекомендуется выполнить компиляцию с помощью команды Rebuild All.
Build/Execute – запуск приложения. Если хотя бы один из файлов после последней компиляции был изменен, то среда вначале предложит выполнить компиляцию, при этом на экране появляется сообщение: One or more files are out of date or do not exist. Would you like to build them? Ваш ответ Yes запустит компиляцию, затем выполнение программы, ответ No вызовет выполнение программы без компиляции.
Компиляция и редактирование связей могут выполняться в двух режимах: Debug – режим отладки и Release – режим готового продукта (реализация). При компиляции с использованием режима Debug в объектные и загрузочный модули включается отладочная информация, что увеличивает размер этих файлов. Так, элементарный проект на базе библиотеки MFC в режиме Debug занимает около 7 Мбайт дисковой памяти, тогда как в режиме Release – около 6 Мбайт. Выбор режима компиляции осуществляется с помощью команды Build/Set Active Configuration. По умолчанию среда устанавливает режим Debug. Режим Release используется на завершающем этапе разработки проекта перед передачей готового приложения заказчику.
19.6. Файловая структура проекта
Файлы проекта (рис. 19.1) помещаются (если не задано иначе) в специальном каталоге, имя которого совпадает с именем проекта. В каталог помещаются исходные файлы проекта, содержащие код программы (*.cpp, *.h), файл ресурсов (*.rc) и файлы, организующие проект (*.dsp, *.dsw). Там же создается каталог Debug или Release в зависимости от выбранного режима компиляции, в которые записываются все результаты компиляции, выполняемый (*.exe) файл и отладочная информация. Если в проекте используются ресурсы (например, рисунки или иконки), то для них создается каталог res.
Рис. 19.1. Примерная файловая структура проекта Lab1
Информация в каталогах Debug и Release перезаписывается при каждой компиляции, поэтому содержимое этих каталогов, как и сами каталоги, можно удалить, тем более что они занимают много места на диске.
Замечание. Если вы хотите перенести ваш проект на другой компьютер, не берите с собой не только каталоги Debug или Release, но и файлы *.dsp, *.dsw, так как в них прописаны пути, соответствующие вашему компьютеру, и поэтому эти проекты на новом компьютере, возможно, работать не будут. Просто на новом компьютере создайте новый проект, в который включите в соответствующие разделы файлы, перенесенные с вашего компьютера, откомпилируйте проект, после чего ваша программа должна восстановить свою работоспособность.
