
Лаб по С и С++ / Pабота в среде VC++
.docРабота в среде Visual C++ 7.0.
Профессиональный разработчик ПО вынужден большую часть жизни проводить за компьютером, бесконечно повторяя цепочку одних и тех же действий, которые составляют суть процесса отладки приложения. Более точным выражением будет — отладка проекта. Студия разработчика (Developer Studio) Visual C++ 7.0 предоставляет для этой цели целый набор достаточно удобных встроенных инструментов (Tools). Возможности студии, может быть, не столь эффектны, как в системе визуального дизайна Borland C++ Builder, но они позволяют разрабатывать проекты 16 различных типов, организовывать зависимые (dependent) проекты, объединять проекты разных типов. Вы можете создавать и отлаживать как структурно-, так и объектно-ориентированные программы внутри интегрированной среды разработки Integrated Development Environment (IDE), используя следующие инструменты: редакторы текста и ресурсов, окна просмотра и встроенный отладчик. Вы можете также изменять настройки компилятора и компоновщика.
Создаваемые вами файлы должны быть включены в Visual C++ Project, который, в свою очередь, необходимо поместить в рабочее пространство (Workspace). Так называется хранилище проектов или область памяти (папка на диске), где расположены ваши проекты и их конфигурации. Workspace может содержать несколько разных проектов (multiple projects), в том числе и проекты различных типов (например, Visual C++ и Visual J++ ).
Запустив
оболочку, вы увидите окно редактора
текста, а слева
от него — окно, которое носит название
Workspace.
Вкладки или страницы этого окна
представляют собой инструменты для
просмотра (Viewers)
файлов проекта, действительно:
-
C
lassView — демонстрирует классы, их данные и методы;
-
FileView — показывает все файлы, включенные в проект;
При создании нового проекта (по команде меню File ► New ► Projects) по умолчанию создается один проект, но в двух конфигурациях:
-
Debug — версия проекта, в которой выключается оптимизация кода и включается в него отладочная информация;
-
Release — версия, в которой делается все наоборот (выключается отладочная информация и включается оптимизация кода).
Сначала вы увидите только одну из папок (Debug или Release) в зависимости от выбора активной конфигурации в меню Build ► Set Active Configuration. Обычно при создании нового проекта (Project) он автоматически помещается во вновь созданное рабочее пространство (Workspace) в конфигурации Debug. Нужно отметить, что демонстрация файлов проекта в отдельной папке проекта не означает, что файлы физически расположены в одной папке. Оболочка может использовать ссылки на файлы из других директорий, но графически отображать файлы так, как будто они находятся в папке проекта. В процессе работы с проектом вы можете безболезненно удалять папки Debug или Release. Они автоматически восстановятся при последующей компиляции исходных файлов. Когда создано рабочее пространство, в него можно добавлять:
-
новые проекты;
-
новые конфигурации (configurations);
-
взаимозависимости (interdependencies) между проектами;
-
подчиненные проекты (subprojects).
Студия Visual C++ 7.0 предлагает выбор из 16 различных типов проектов приложений. Их все можно увидеть, выбрав пункт меню File ► New ► Projects. Мы будем использовать только три из них:
-
Win32 Application — проект Windows-приложения, ориентированного на использование функций API и использующего GDI — Graphic Device Interface (графический интерфейс Windows);
-
Win32 Console Application — проект приложения, не использующего GDI (текстовый режим окна);
-
MFC AppWizard (exe) — проект приложения для Windows с использованием библиотеки MFC (Microsoft Foundation Classes), основанный на начальном остове или стартовой заготовке приложения.
Вы, конечно, знаете, что основным инструментом разработчика при создании Windows-приложений является библиотека API — интерфейс разработки приложений. В MFC-приложениях эта библиотека используется, но скорее неявно. API содержит более 2000 функций, а также описания великого множества структур и типов данных. Чтобы преуспеть в подходе к разработке приложений на основе функций API, необходимо иметь четкое представление об их возможностях, ознакомиться с используемыми структурами данных и проникнуть в тайны философии программирования для Windows. Разработка таких проектов является сложным, кропотливым и, следовательно, медленным процессом. Необходимость понимания фундаментальных принципов и моделей, заложенных в архитектуру Windows, потребует от программиста достаточно больших временных затрат на знакомство со специальной литературой, например с книгой Джеффри Рихтера «Windows для профессионалов». Для того чтобы стать опытным API-программистом, потребуется не менее пяти лет упорного труда.
Использование библиотеки классов MFC многократно уменьшает затраты на разработку приложения и существенно упрощает процесс создания приложения. Такой инструмент студии разработчика, как MFC AppWizard, автоматизирует процесс создания начальной заготовки приложения и по выбранному вами типу проекта создает стартовый остов приложения, состоящий из одного-двух десятков файлов. Некоторые из них перечислены ниже, какие-то вы никогда не будете открывать и изменять, а другие — сами будете подключать к проекту.
Есть файлы, которые существуют во всех типах проектов. Рассмотрим их. Предположим, что вы выбрали какой-то тип проекта (из возможных альтернатив, предложенных в диалоге File ► New ► Projects) и в качестве имени проекта (Project Name) задали имя One. AppWizard создаст каталог One и поместит туда 4 файла: One.dsw, One.opt, One.dsp, One.ncb:
-
One.dsw — это developer studio workspace-файл, используемый средой IDE. Он помогает объединить все проекты в одном рабочем пространстве.
-
One.opt — этот файл содержит workspace options, используемые IDE. Здесь сохраняются все удобные вам настройки рабочего пространства, которые вы выбрали в течение работы с проектом.
-
One.dsp — файл типа developer studio project. Здесь хранится информация, описывающая конкретный проект. Сколько проектов в workspace — столько и dsp-файлов.
-
One.ncb — файл типа по compile browser, в котором располагается информация, генерируемая синтаксическим анализатором и используемая такими инструментами, как ClassView, WizardBar, Component Gallery.
Список файлов проекта. (при первом чтении можно пропустить)
Кроме этих файлов (созданных изначально) в течение работы с проектом в директории One или в ее поддиректориях будут появляться другие файлы, которые мы дадим в виде списка. Этот список имеет смысл использовать как справочник.
-
StdAfx.h, StdAfx.cpp — используется для построения файла скомпилированных заголовков One.pch (precompiled header) и файла скомпилированных типов StdAfx.obj, которые значительно ускоряют повторные компиляции всех файлов проекта после внесённых вами изменений (если они незначительны).
-
One.h — главный файл заголовков (headerfile), который содержит определения глобальных переменных, классов и типов, директивы #include для подключения других файлов заголовков. В нем объявляется класс приложения COneApp (производный от класса CWinApp) и переопределяется метод Initlnstance.
-
One.cpp — это главный файл исходного текста программы. Он создает один объект класса COneApp и дает тело метода Initlnstance.
-
OneDlg.h, OneDlg.cpp — создаются, если приложение создано на основе диалога (одна из возможностей, предоставляемая AppWizard).
-
OneDoc.h, OneDoc.cpp — содержат описание и остовы методов класса, производимого от CDocument. Модель программирования Документ-Вид и, в частности, класс CDocument поддерживают стандартные операции с абстрактным документом, такие как его создание, запись содержимого в файл и чтение из файла (serialization).
-
OneView.h, OneView.cpp — содержат описание и остовы методов класса, производимого от класса CView, который инкапсулирует данные и методы для воспроизведения содержимого документа. Один документ может иметь несколько обликов (Видов). Класс COneView может происходить от классов CEditView, CFormView, CRecordView, CDaoRecordView, CTreeView, CListView, CRichEditView, CScroliView, которые помогают разработчику создавать различные облики документа.
-
MainFrm.h, MainFrm.cpp — содержат описание и остовы методов класса CMainFrame, производимого от класса CFrameWnd (для SDI-приложений) или CMDIFrameWnd (для МDI-приложений). Класс управляет поведением главного окна приложения, в частности, таких его элементов, как Tool Bar и Status bar.
-
Resource.h, One.гс — файлы ресурсов, которые содержат определения меню, значков, картинок, клавиш быстрого доступа (hot-keys), диалогов, строк подсказок, высвечиваемых в строке состояния, и т. д. В них есть директивы для включения файлов afxres.h и afxres.rc, которые содержат определения стандартных ресурсов и ссылку на файлы res\One.ico и res\too1bar.bmp с bitmap-изображениями значков приложения.
-
One.rc2 — файл, который содержит общие ресурсы, используемые в нескольких проектах. Помещайте туда ресурсы, многократно использующиеся различными проектами, и подключайте One.гс2 директивой #include (в файле One.rc).
-
First.clw — используется одним из Tools (ClassWizard) для хранения информации о классах в вашем проекте.
-
First.odl — содержит исходный код языка описания объектов (object description language), необходимый для библиотеки элементов управления.
-
Readme.txt — поможет вам разобраться в файлах проекта.
В проектах ранних версий студии, предназначенных для работы в режиме Win16 (16-bit Windows), вы можете обнаружить файлы с расширением def — файлы описания ехе-модуля (сегменты DATA и CODE, размер областей heap и stack и т. д.).