Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Паппас К., Мюррей У. - Visual C++ 6. Руководство разработчика - 2000

.pdf
Скачиваний:
288
Добавлен:
13.08.2013
Размер:
4.96 Mб
Скачать

Debug

На вкладке Debugможно указать местонахождение исполняемого файла и рабочей папки, задать аргументы командной строки, а также путь и имя удаленного исполняемого файла на сетевом диске. Кроме того, в списке Category можно выбрать элемент AdditionalDLLs, предназначенный для задания дополнительных библиотек динамической компоновки (DLL).

C/C++

Вкладка C/C++ содержитследующиекатегорииопций: General, C++ Language, Code Generation, Customize, Listing Files, Optimizations, Precompiled Headers и Preprocessor. В

поле ProjectOptions отображается командная строка проекта.

General

Опции категории Generalпозволяют установить уровень контроля за ошибками (список Warninglevel), указать, какую отладочную информацию следует включать (список Debuginfo), выбрать тип оптимизации при компиляции (список Optimizations) и задать директивы препроцессора (поле Preprocessordefinitions).

C++ Language

Опции категории C++ Languageпозволяют выбрать способ представления указателей на члены классов (группа Pointer-to-member representation), включить обработку исключительных ситуаций (Enable exception handling), разрешить проверку типов объектов на этапе выполнения (EnableRun-timeTypeInformation) и запретить замещение конструкторов при вызове виртуальных функций (Disableconstructiondisplacements).

CodeGeneration

Опции категории CodeGeneration позволяют задать тип процессора, на который должен ориентироваться компилятор (список Processor), выбрать тип соглашения о вызовах функций (список Callingconvention), указать тип компоновки динамических библиотек (список Useruntimelibrary) и установить порядок выравнивания полей структурированных переменных (список

Structmemberalignment).

Customize

Вкатегории Customize можно задать следующие опции:

Disablelanguageextensions (компиляция производится в соответствии с правилами

ANSIС, а не MicrosoftС);

Enablefunction-levellinking (функции при компиляции обрабатываются особым образом, что позволяет компоновщику упорядочивать их и исключать неиспользуемые);

Eliminateduplicatestrings(в таблицу строк модуля не включаются повторяющиеся строки);

Enableminimalrebuild(позволяет компилятору обнаруживать изменения в объявлениях классов C++ и выявлять необходимость повторной компиляции исходных файлов);

Enableincrementalcompilation(дает возможность компилировать только те функции, код которых изменился с момента последней компиляции);

Suppressstartupbannerandinformationmessages(в процессе компиляции запрещается вывод сообщения с информацией об авторских правах и номере версии компилятора).

ListingFiles

Опции категории ListingFiles позволяют задавать сведения, необходимые для создания SBRфайла (группа Generatebrowseinfo), который используется при построении специальной базы

11

данных с информацией о всех классах, функциях, переменных и константах программы. Кроме того, в этой категории можно указать, следует ли создавать файл с ассемблерным кодом программы, какого он должен быть типа и где располагаться (список Listingfiletype и поле

Listingfilename).

Optimizations

Опции категории Optimizationsпозволяют устанавливать различные параметры оптимизации программного кода (список Optimizations). Также можно указать, каким образом следует выполнять макроподстановку функций (список Inlinefunctionexpansion).

PrecompiledHeaders

Опции категории PrecompiledHeaders определяют, следует ли использовать файлы предварительно скомпилированных заголовков (файлы с расширением РСН). Наличие таких файлов ускоряет процесс компиляции и компоновки. После компиляции всего приложения эти файлы следует удалить из папки проекта, поскольку они занимают очень много места.

Preprocessor

Опции категории Preprocessor позволяют задавать параметры работы препроцессора. Здесь же можно указать дополнительные папки для включаемых файлов заголовков (поле Additional #include directories), а также установить опцию Ignore standard include paths, которая служит указанием игнорировать папки, перечисленные в переменных среды PATHили INCLUDE.

Link

Вкладка Link содержит опции пяти категорий: General, Customize, Debug, Inputи Output.

General

Вкатегории General в поле Outputfilename можно задать имя и расширение выходного файла. Как правило, для файла проекта используется расширение ЕХЕ. В поле Object/librarymodules указываются объектные и библиотечные файлы, компонуемые вместе с проектом. Также могут быть установлены следующие опции:

Generatedebuginfo(в исполняемый файл включается отладочная информация);

Linkincrementally(частичная компоновка; эта опция доступна, если в категории

Customize установлен флажок Useprogramdatabase);

Enableprofiling(в исполняемый файл включается информация для профилировщика);

Ignorealldefaultlibraries(удаляются все стандартные библиотеки из списка библиотек, который просматривается компоновщиком при разрешении внешних ссылок);

Generatemapfile(создается МАР-файл проекта).

Customize

Вкатегории Customize можно установить такие опции:

Linkincrementally(аналогична одноименной опции из категории General);

Useprogramdatabase(в служебную базу данных программы помещается отладочная информация);

Outputfilename(задает имя выходного файла);

Printingprogressmessages(в процессе компиляций выводятся сообщения о ходе компоновки);

Suppressstartupbanner(аналогична подобной опции категории Customize вкладки

C/C++).

12

Debug

Опции категории Debug позволяют указать, следует ли генерировать МАР-файл проекта, а также задают различные параметры отладки.

Input

Посредством опций категории Input приводится различная информация об объектных и библиотечных файлах, компонуемых вместе с проектом.

Output

Опции категории Output позволяют задать базовый адрес программы (Baseaddress), точку входа (Entry-pointsymbol), объем виртуальной и физической памяти, выделяемой для стека

(группа Stackallocations), и номер версии проекта (группа Versioninformation).

Resources

Вкладка Resources позволяет указать имя файла ресурсов (обычно это файл с расширением RES) и задать некоторые дополнительные параметры, такие как язык представления ресурсов, папки включаемых файлов и макросы препроцессора.

MIDL

Вкладка MIDL предназначена для задания различных параметров генерации библиотеки типов.

BrowseInfo

На вкладке BrowseInfo можно указать имя файла базы данных, содержащей описания классов, функций, констант и переменных программы.

CustomBuild

Вкладка CustomBuild предназначена для задания дополнительных команд компиляции, которые будут выполняться над выходным файлом.

13

Глава 2. Краткое знакомство со средой Visual C++

Запуск Visual C++

Доступ к контекстной справке

Вызов команд меню

Перемещаемые панели инструментов

Меню File

o

New

o

Open

o

Close

o

Save

o

Save As

o

Save All

o

Page Setup

o

Print

o Recent Files и Recent Workspaces

oExit

Меню Edit

oUndo

o

Redo

o

Cut

o

Copy

o

Paste

o

Delete

o

Select All

o

Find

o

Find in Files

o

Replace

o

Go To

o

Bookmarks

oBreakpoints

oList Members

oType Info

oParameter Info

oComplete Word

Меню View

oClassWizard

o Resource Symbols и Resource Includes

o

Full Screen

o

Workspace

o

Output

oDebug Windows

oRefresh Properties

Меню Insert

oNew Class

o Resource

oResource Copy

oFile As Text

oNew ATL Object

Меню Project

oSet Active Project

oAdd to Project...

o

Dependencies

o

Settings

o

ExportMakefile

oInsert Project Into Workspace

Меню Build

oCompile

o

Build

o

Rebuild All

o

Batch Build

o

Clean

o

Start Debug

14

o

Debugger Remote Connection.

o

Execute

o

Set Active Configuration

o

Configurations

oProffle

Меню Tools

oSource Browser

o Close Source Browser File

o

Error Lookup

o ActiveX Control Test Container

o

OLE/COM Object Viewer

o

Spy++

o

MFC Tracer

o

Visual Component Manager

o

Register Control

o

Customize

o

Options

oMacro / Record / Play

Меню Window

oNew Window

o

Split

o

Docking View

o

Close

o

Close All

o

Next

o

Previous

o

Cascade

oTile Horizontally

oTile Vertically

oСписок открытых окон

Меню Help

oContents / Search / Index

oUse Extension Help

oKeyboard Map

oTip of the Day

oTechnical Support

oMicrosoft on the Web

oAbout Visual C++

Краткое знакомство со средой VisualC++

MicrosoftVisualC++ представляет собой интегрированную среду разработки, в которой вы можете легко создавать, открывать, просматривать, редактировать, сохранять, компилировать и отлаживать все свои приложения, написанные на С или C++. Преимуществом этой среды является относительная простота и легкость в изучении.

В настоящей главе мы рассмотрим всевозможные команды и опции меню, имеющиеся в распоряжении пользователя, а в главе 3 перейдем непосредственно к работе в среде

VisualC++.

ЗапускVisual C++

Запуск оболочки VisualC++ не составит для вас труда. На рис. 2.1 представлено начальное окно с произвольно выбираемым советом дня, которое открывается при этом.

Доступ к контекстной справке

Доступ к справочной системе VisualC++ облегчен благодаря тому, что вся информация предоставляется в интерактивном режиме. Чтобы получить справку, достаточно навести указатель на интересующий вас инструмент и нажать клавишу [F1].

15

Рис 2.1.

Следует отметить, что использование контекстной справки не ограничивается элементами интерфейса. Если вы наведете указатель на элемент программного кода C/C++ и нажмете [F1], то получите справку о синтаксисе выбранной вами конструкции.

Вызов команд меню

Прежде чем перейти к описанию отдельных команд и опций, остановимсa на некоторых моментах, общих для всех меню. Вспомним, например, о том, что существует два способа выбора команд из меню. Более распространенный из них состоит в том, что вы устанавливаете указатель мыши и щелкаете на нужных командах меню левой кнопкой мыши. Второй способ заключается в использовании клавиш быстрого вызова, которые выделяются подчеркиванием в названиях команд. Так, меню File можно раскрыть, нажав одновременно [Alt+F].

Существует еще один способ вызова отдельных команд в любой момент времени, а именно с помощью предварительно заданных "горячих" клавиш. Если для команды определено сочетание клавиш, то это сочетание будет указано в меню справа от соответствующего пункта. Например, в меню File есть команда New..., которую можно вызвать, просто нажав [Ctrl+N].

Команда меню, показанная серым цветом, является в данный момент недоступной — вероятно, отсутствуют некоторые условия, необходимые для ее выполнения. Например, команда Slave из меню File будет недоступной, если в редактор ничего не загружено. Программа "понимает", что в данный момент сохранять просто нечего, и напоминает вам об этом, отключив команду сохранения.

Если за названием команды меню следует троеточие, значит, после выбора данной команды будет открыто диалоговое окно. Например, после выбора команды Open... в меню File открывается диалоговое окно Open.

Наконец, многие команды меню представлены также кнопками на панелях инструментов и могут быть вызваны простым щелчком мыши. Панели инструментов обычно размещаются в окне программы непосредственно под строкой меню.

Перемещаемые панели инструментов

Любые панели инструментов VisualC++ можно сделать закрепленными или плавающими. Закрепленные панели инструментов фиксируются вдоль одного из четырех краев окна программы. Изменить размер такой панели вы не можете.

Плавающая панель инструментов имеет собственную строку заголовка и может находиться в любом месте. Плавающие панели всегда располагаются поверх других компонентов окна программы. Вы можете свободно изменять как размер, так и местоположение плавающих панелей инструментов.

16

Чтобы превратить закрепленную панель инструментов в плавающую, вам необходимо выполнить такие действия:

щелкнуть левой кнопкой мыши на свободном пространстве панели инструментов;

удерживая кнопку мыши нажатой, перетащить панель инструментов в требуемое место.

Ачтобы закрепить плавающую панель - такие:

щелкнуть левой кнопкой мыши на строке заголовка или свободном пространстве панели инструментов;

удерживая кнопку мыши нажатой, перетащить панель инструментов к одному из четырех краев окна программы.

При необходимости разместить плавающую панель инструментов поверх закрепленной вы должны:

щелкнуть левой кнопкой мыши на строке заголовка или свободном пространстве панели инструментов;

удерживая кнопку мыши, нажать клавишу [Ctrl] и перетащить панель инструментов в нужное место.

Меню File

В VisualC++ в меню File собран стандартный для многих приложений Windows набор команд, предназначенных для манипулирования файлами (рис. 2.2).

Рис. 2.2.

New...

По команде New... открывается окно для выбора типа создаваемого файла, проекта или рабочего пространства. Именно с этой команды обычно начинается работа над новым приложением. VisualC++ автоматически присваивает название и номер каждому создаваемому файлу (но не проекту), если только вы не сделали этого самостоятельно. Нумерация файлов начинается с 1. Таким образом, первый файл всегда будет иметь имя xxxl, второй — ххх2 и т.д.

17

Здесь ххх обозначает стандартное имя, меняющееся в зависимости от типа создаваемого файла (программный файл, файл заголовков, значок, указатель мыши и т.п.).

Если вы создадите шесть файлов с именами от xxx1 до ххх6, а затем закроете файл xxx1, то при следующем выборе команды New... программа не восстановит отсутствующее название (в данном случае ххх2), но автоматически присвоит файлу следующий порядковый номер после наибольшего номера файла, открытого на данный момент. То есть в нашем случае новому файлу будет присвоено имя xxx1.

Open...

В отличие от команды New..., предназначенной для создания нового файла, команда Open...

открывает диалоговое окно, с помощью которого вы можете выбрать любой ранее сохраненный файл. Окно OpenFile имеет стандартный вид для всех приложений Windows. В случае попытки открыть уже открытый файл будет подан звуковой сигнал и показано предупреждающее сообщение.

Вторая слева кнопка на стандартной панели инструментов является альтернативой команде

Open....

Close

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

Save

Команда Saveсохраняет содержимое текущего окна в соответствующем файле. По строке заголовка окна можно определить, соответствует ли активному окну какой-нибудь файл на жестком диске. Если вы открыли новое окно и еще не сохраняли его, то в строке заголовка будет показано стандартное имя вида xxxl. При попытке сохранить информацию из окна, которому не соответствует ни один файл, автоматически будет открыто диалоговое окно

SaveAs.

Для сохранения файла можно также использовать расположенную на панели инструментов кнопку Save (третья слева). Если файл был открыт в режиме только для чтения, то команда Save будет недоступной.

SaveAs...

Команда SaveAs... позволяет сохранить содержимое окна в файле под новым именем. Предположим, вы только что закончили работу над проектом и, имея вполне работоспособную программу, хотите попытаться внести некоторые изменения. В целях безопасности текущую версию программы нужно сохранить. Для этого вы выбираете команду SaveAs и сохраняете проект под новым именем, после чего можете спокойно экспериментировать с дубликатом. Если эксперименты приведут к повреждению программы, вы всегда сможете вернуться к исходной версии.

SaveAll

Если вам никогда ранее не приходилось заниматься программированием на C/C++ в Windows95,98 или NT, то поначалу вы будете ошеломлены обилием файлов, вовлеченных в проект. Неудобство команды Save состоит в том, что она сохраняет содержимое только одного, текущего окна. С помощью команды SaveAll можно сохранить все открытые на данный момент файлы. Если содержимое каких-то окон ранее не сохранялось в файлах, то для них автоматически будет открываться окно SaveAs, где вы сможете вводить имена новых файлов.

PageSetup...

Данную команду обычно используют перед выводом файла на печать. В открывающемся при этом диалоговом окне PageSetup вы можете задать верхний и нижний колонтитулы для каждой печатной страницы, а также размеры, верхнего, нижнего, правого и левого полей страницы.

18

Команды форматирования, которые можно использовать при настройке колонтитулов, перечислены в табл. 2.1.

Таблица 2.1. Команды форматирования используемые в диалоговом окне Page Setup

Команда форматирования

Назначение

 

 

Центрирование текста

 

 

&d

Добавление текущей системной даты

 

 

&f

Добавление имени файла

 

 

&1

Выравнивание текста по левому краю

 

 

Нумерация страниц

 

 

Выравнивание текста по правому краю

 

 

&t

Добавление текущего системного времени

Print...

Чтобы вывести на печать содержимое активного окна, нужно выбрать из меню File команду Print.... Откроется диалоговое окно Print, в котором вы сможете установить требуемые параметры печати. Прежде всего необходимо решить, хотите вы вывести на печать все содержимое файла или только предварительно выделенную часть. Если в активном окне был выделен блок, то в окне Print станет доступной опция Selection группы PrintRange (в противном случае переключатель окажется недоступным). Если к компьютеру подключено несколько устройств вывода, вы можете выбрать нужный принтер и произвести настройку параметров печати, щелкнув на кнопке Setup.

Recent Files и Recent Workspaces

Под командой Print... находятся списки недавно открывавшихся файлов и проектов. Удобная особенность таких списков состоит в том, что они обновляются автоматически. Когда вы в первый раз запускаете VisualC++, оба списка пусты.

Exit

Команда Exit закрывает окно VisualC++. Не беспокойтесь, если вы забыли сохранить содержимое какого-нибудь файла. Программа автоматически выдаст предупреждающие сообщения для каждого несохраненного файла.

Меню Edit

Команды меню Edit (рис. 2.3) позволяют редактировать текст и проводить поиск по ключевым словам в программном коде, отображаемом в активном окне. Работа этих команд основана на тех же принципах, что и работа аналогичных команд в большинстве текстовых редакторов.

19

Рис. 2.3.

Undo

Команда Undo позволяет отменять последние выполненные операции редактирования. Данная возможность доступна также и через соответствующую кнопку стандартной панели инструментов (восьмая слева).

Redo

После того как вы отменили последнее действие с помощью команды Undo, вы можете повторить операцию, воспользовавшись командой Redo. Этой команде соответствует девятая слева кнопка стандартной панели инструментов.

Cut

Команда Cut копирует выделенный блок текста из активного окна в буфер обмена, после чего удаляет этот блок из окна. Команду Cut обычно используют в сочетании с командой Paste для перемещения блока текста из одного места в другое. На стандартной панели инструментов ей соответствует пятая кнопка слева.

Copy

Как и команда Cut, команда Сору копирует и помещает выделенный блок текста в буфер обмена, но этот блок сохраняется в активном окне. Команду Сору обычно используют в сочетании с командой Paste при необходимости скопировать блок текста из одного места в другое. Ей соответствует шестая слева кнопка стандартной панели инструментов.

Paste

Команда Paste предназначена для вставки информации из буфера обмена в текущий документ (в месторасположение текстового курсора). На стандартной панели инструментов ей соответствует седьмая слева кнопка.

20

Соседние файлы в предмете Программирование на C++