К этому моменту у нас есть проект на Managed C++, в файле Bytes cpp есть главная функция mam, но сама она не реализована Поэтому теперь нам следует добавить в проект файл Bytes h, содержащий описание класса, в том числе и главный метод Мат, вызываемый из главной (main) функции в файле Bytes cpp
10. В окне Solution Explorer (Поиск решений) щелкните правой кнопкой мыши на пиктограмме файла Bytes.cpp и выберите во всплывшем меню пункт Add => Add New Item (Добавить => Добавить новый элемент ) Это приведет к появлению диалога Add New Item (Добавить новый элемент)
11. В окне Categories (Категории) выберите пункт "Visual C++", а в окне Templates (Шаблоны) — пункт "Header file ( h)" ("Заголовочный файл ( h)")
12. В поле Name (Имя) наберите Bytes.h См Рисунок А.7 Щелкните на кнопке Open (Открыть)
Выполните двойной щелчок на пиктограмме файла Bytes h в Solution Explorer (Поиск решения) Это приведет к открытию пустого файла Bytes. h в текстовом редакторе Visual Studio Наберите в нем следующую программу и обратите внимание на подсветку зарезервированных слов
//Bytes.h - Stepl
public _gc class Bytes
// общедоступный класс сборщика мусора Байты
{
public.
// общедоступный:
static void Main()
// статическая Главная
{
Int64 bytes = 1024; // Int64 байты = 1024;
Console:.WriteLine("kilo = {0}", _box(bytes));
bytes = bytes * 1024;
Console::WriteLine("mega = {0}", _box(bytes)),
bytes = bytes * 1024;
Console-:WriteLine("giga = {0}", _box(bytes)),
bytes = bytes * 1022,
Console::WriteLine("tera = {0}", _box(bytes));
}
};
Выделение зарезервированных слов— не единственное достоинство текстового редактора Visual Studio. Кроме этого, текстовый редактор Visual Studio автоматически делает необходимые отступы. И вообще, редактор Visual Studio является дружественным и удобным в использовании.
Щелкните дважды на пиктограмме файла Bytes . cpp в Solution Explorer (Поиск решения). Это приведет к открытию в текстовом редакторе Visual Studio уже существующего файла Bytes . cpp. Теперь мы должны вставить вызов метода Main класса Bytes из главной (main) функции программы. Для этого необходимо также включить заголовочный файл Bytes . h с помощью директивы ttinclude.
#include "stdafx.h"
#using <mscorlib.dll>
using namespace System;
#include "Bytes.h"
#ifdef _UNICODE
int wmain(void)
telse
int main(void)
#endif
{
Bytes::Main();
return 0;
}
Прежде чем продолжать знакомить вас с Visual Studio, мы хотим быть уверены, что на панели инструментов Debug (Отладка) в вашей версии Visual Studio есть кнопка, соответствующая команде "Start Without Debugging" ("Запуск без отладки"). Если ее всетаки нет (на ней изображен красный восклицательный знак), ее несложно добавить на панель, следуя общей процедуре добавления любых кнопок на любую панель инструментов:
1. Выберите пункт меню Tools => Customize (Сервис => Настройка...) для вызова диалогового окна настройки Customize.
2. Выберите вкладку Commands (Команды).
3. В окне Categories (Категории) выберите пункт (Отладка), а в окне Commands (Команды) — пункт "Start Without Debugging" ("Запуск без отладки"). См. Рисунок А.5.
4. Перетащите выбранную команду на инструментальную панель Debug (Отладка), поместив ее там, где сами сочтете подходящим. Рекомендуемое для нее место — непосредственно после кнопки Start (Пуск) с изображением клина.
5. Закройте диалог Customize (Настройка).
Чтобы скомпилировать приложение, можно использовать одно из следующих средств:
пункт меню Buildo Build; пиктограмму на панели инструментов; сочетание клавиш Ctrl-Shift-B.
Конфигурация проекта определяет параметры компоновки приложения. Одновременно может быть определено несколько различных конфигураций, причем приложение для каждой из них будет создаваться в отдельной папке, так что у вас есть возможность сравнить эти конфигурации. Изначально каждый проект в решении Visual Studio имеет две конфигурации — Debug (Отладка) и Release (Выпуск). При использовании конфигурации Debug (Отладка) будет создаваться отладочная версия проекта, с помощью которой можно осуществлять отладку на уровне исходного кода посредством установки точек останова и т.д. В папке Debug (Отладка) при этом будет находиться файл, используемый компоновщиком для записи отладочной информации о пользовательской программе с целью ускорения редактирования связей в режиме отладки. Этот файл имеет расширение .pdb и содержит отладочную информацию, а также информацию о состоянии проекта.
Необходимую конфигурацию можно выбрать с помощью элемента списка Debug (Отладка) на главной панели инструментов. То же самое можно сделать, выбрав пункт меню BuildoConfiguration Manager... (КомпоновкаОДиспетчер конфигурации...), что приведет к запуску диалога Configuration Manager (Диспетчер конфигурации). Из выпадающего списка Active Solution Configuration (Текущая конфигурация решения) выберите пункт Release (Выпуск). См. Рисунок А.8.
Скомпонуйте проект еще раз. Теперь создана вторая версия программы Bytes.exe на Managed C++, причем на этот раз она помещается в папку Release (Выпуск).
Теперь можно просмотреть значения переменных Простейший способ это сделать — навести указатель мыши на переменную, и во всплывающей подсказке (на желтом фоне) около курсора будет выведено значение переменной Можно также щелкнуть правой кнопкой мыши на переменной и выбрать пункт Quick Watch (Контрольное значение) во всплывшем меню (или воспользоваться кнопкой Контрольное значение с изображением очков на панели инструментов) На Рисунок А.13. показано типичное окно контрольного значения В этом окне можно также изменить значение переменной
Обычным способом использования отладчика является установка точек останова, и последующий запуск прдграммы под отладчиком Для примера, установим точку останова на первой строке
bytes = bytes * 1024; // байты = байты * 1024;
Простейший способ установить точку останова — щелкнуть на сером поле слева от окна с исходным кодом программы Можно также переместить курсор на нужную строку и щелкнуть на кнопке "Точка останова" на панели инструментов Щелчок на этой кнопке установит точку останова, если ее там не было, и, наоборот, уберет ее, если она уже была установлена на этой строке Теперь, если запустить программу под отладчиком, ее выполнение остановится при достижении точки останова Желтая стрелка на красном кружке, обозначающем точку останова, указывает, на какой именно точке останова прервано выполнение программы (Рисунок А.12.)
Открыв Microsoft Visual Studio.NET 7.0, вы увидите стартовое окно, подобное изображенному на Рисунок А.1.
То, что вы увидите при запуске Visual Studio с конфигурацией, принятой по умолчанию, — это главное окно с HTML-страницей в нем, которая поможет вам использовать различные ресурсы, создавать и открывать проекты, а также изменять ваш профиль. (На начальную страницу можно выйти в любой момент, выбрав пункт меню Help^Show Start Page (Помощь^Показать стартовую страницу).) Выбор пункта My Profile (Мой профиль) вызовет появление страницы профиля, с помощью которой можно изменять различные параметры. Среди предлагаемых профилей есть "обычный" (профиль "Visual Studio Developer") и несколько особых, для различных языков программирования. Поскольку Visual Studio.NET является унификацией различных сред разработки, программисты, использовавшие ранее другие среды, могут предпочесть привычные для них схемы клавиатуры, конфигурации окон и т.д. Так, при выборе профиля "Visual Basic Developer" текущая схема клавиатуры будет совпадать с используемой в Visual Basic 6. В данной книге используются параметры, принятые по умолчанию, так что выберите в списке Profile (Профиль) пункт "Visual Studio Developer", если вы уже сделали какие-либо изменения См Рисунок А.2.
Для того чтобы увидеть, как работает оперативная отладка, введем в программу код, вызывающий необрабатываемое исключение. Этот пример находится в папке Bytes\Step2. Деление на ноль в нем приведет к возникновению исключения DivideByZeroException.
//Bytes.h - Step2
public _gc class Bytes
// общедоступный класс сборщика мусора Байты
{
public:
// общедоступный:
static void Main()
// статическая Главная ()
{
Int64 bytes = 1024;
Console::WriteLine("kilo = {0}",
_box(bytes));
int zero =0; // обнулить
int i = zero;
}
};
Создайте и запустите (не отлаживая) программу Bytes из папки Bytes\Step2, убедившись перед этим, что она скомпонована в конфигурации Debug (Отладка) Эта версия программы не сможет корректно завершиться, и возникнет исключение Появится диалог "Just-In-Time Debugging" ("Оперативная отладка"), как показано на Рисунок А.11 Щелкните на кнопке Yes (Да), чтобы начать отладку
В этом разделе мы обсудим некоторые возможности отладки Visual Studio. Для того чтобы воспользоваться возможностью отладки на уровне исходного кода, следует создать исполняемые файлы в конфигурации Debug (Отладка), обсужденной выше. Существуют две возможности войти в отладчик:
Оперативная отладка (Just-in-Time Debugging). Программа работает обычным образом, но если возникает исключение, вы получите возможность запустить отладчик. Программа терпит крах, так что вы не сможете ни продолжить ее выполнение, ни сделать следующий шаг, ни установить точку останова или предпринять что-то подобное. Тем не менее, вы сможете просмотреть значения переменных и узнать, в каком именно месте программы остановилось ее выполнение. Обычная отладка (Standard Debugging). Программа запускается под отладчиком. При этом можно установить точки останова, выполнение в пошаговом режиме и т.д.
В Visual Studio предусмотрено множество панелей инструментов. Пользователь легко может определить, какие из панелей отображать, и перетащить любую из них в то место, которое он посчитает наиболее подходящим. Кроме того, можно переделывать панели, добавляя или удаляя из них кнопки, соответствующие различным командам.
Выбор панелей инструментов, выводимых на экран, производится в пункте меню View => Toolbars (Вид => Панели инструментов). То же самое можно сделать, щелкнув правой кнопкой мыши на какой-либо панели. В появившемся при этом меню названия показываемых панелей инструментов будут отмечены галочками. Щелкнув на названии панели инструментов, можно заставить появиться или исчезнуть соответствующую панель инструментов. Для удобства работы с примерами, используемыми в книге, добавьте панели инструментов
Параметры отладчика можно изменить, выбрав пункт меню Tools => Options (Сервис => Параметры) и затем элемент Debugging (Отладка) из списка
Для того чтобы получить представление о разнообразии возможностей Visual Studio NET, откройте консольное решение Bank в папке АррА (Для этого выберите пункт меню File => Open Solution (Файл => Открыть решение ), перейдите в папку Bank и откройте файл Bank sin ) Вы сразу же увидите несколько различных окон См Рисунок A.3.
Слева в окне находятся пиктограммы Server Explorer (Проводник по серверам) и Tool box (Инструментальная панель) Правее от них — главное окно в котором отображается программный код, хранимый в файле Bank cpp Ниже главного окна расположено окно вывода (Output), в котором выводится служебная информация, такая как результаты сборки и т п Далее, в правом верхнем углу находится Solution Explorer (Поиск решения), в удобочитаемом виде показывающий список файлов, содержащийся в "решении", которое, в свою очередь, может состоять из нескольких "проектов ' В правом нижнем углу находится окно свойств (Properties), с помощью которого можно легко изменять свойства форм приложения Windows Окно свойств (Properties) очень похоже на одноименное окно в Visual Basic
С помощью Solution Explorer (Поиск решений) можно найти любой файл проекта Выполните двойной щелчок на пиктограммах файлов Account h и Bank h, яв ляющихся файлами исходных кодов проекта Bank В главном окне откроется окно текстового редактора Вкладки вверху главного окна позволяют легко перемещаться от одного открытого файла к другому Кроме того, Visual Studio NET позволяет выбирать показываемое окно в меню Windows (Окно) Для примера на рис А 4 изобра жено главное окно с горизонтальной линейкой вкладок, соответствующих разным исходным файлам
После выполнения указанных ниже действий вы обнаружите, что программа Bytes. exe будет в дальнейшем помещаться в папку Bytes\AlternateDebug.
4. Щелкните правой кнопкой на папке Bytes в Solution Explorer (Поиск решения) и выберите во всплывшем меню пункт Properties (Свойства). Появится диалог "Bytes Property Pages" ("Страница параметров Bytes").
5. С помощью средства Configuration Properties (Свойства конфигурации) выберите пункт General (Общие). Измените содержимое поля "Output Directory" ("Выходная папка") на AlternateDebug, как показано на Рисунок А.10. Щелкните на кнопке ОК.
Щелкните на кнопке "ОК." в диалоге "Attach to Process" ("Присоединиться к процессу"), а затем — на кнопке Break (Прервать) в диалоге "Microsoft Development Environment" (Среда разработки Microsoft) Теперь перед вами окно с исходным кодом программы, во время выполнения которой возникла ошибка При этом стрелка указывает на строку, где эта ошибка произошла
Для остановки отладки можно использовать кнопку останова на панели инструментов или пункт меню Debug => Stop Debugging (Отладка => Сброс)
Закончив использование точек останова, можете удалить их, щелкнув на сером поле слева от окна с исходным кодом или на кнопке "Точка останова", расположенной на панели инструментов Если необходимо удалить сразу все точки останова, можно использовать пункт меню Debug => Clear All Breakpoints (Отладка => Снять все точки останова) или соответствующую кнопку на панели инструментов
Остановив с помощью отладчика выполнение программы можно добавить переменную в окно просмотра, щелкнув на ней правой кнопкой мыши и выбрав пункт Add Watch (Добавить контрольное значение) во всплывшем меню В окне Watch (Контрольное значение) может отображаться несколько переменных, и оно остается открытым во время выполнения программы При изменении значения переменной новое значение выделяется красным На Рисунок А.14. показан пример окна Watch (Контрольное значение) Заметьте, что значение переменной выводится в виде шестнадцатеричного числа, как изменить представление переменной объясняется ниже
В качестве первого упражнения по использованию Visual Studio создадим простое консольное приложение. Создаваемая программа Bytes будет производить подсчет количества байтов в килобайте, мегабайте, гигабайте и терабайте. Если вы хотите сопровождать чтение реальными действиями, можете воспользоваться файлами, находящимися в папке Demos. Первая версия программы находится в папке BytesXStepl, окончательная — в папке Bytes\Step3.
Иногда необходимо создать дополнительную конфигурацию, в которой будут установлены параметры создания приложения, отличающиеся от принятых в существующих конфигурациях.
В качестве примера создадим конфигурацию, которая будет помещать исполняемую программу в отдельной папке. В Visual Studio параметры создания устанавливаются с помощью диалоговых окон. Приведенная ниже последовательность действий позволит создать новую конфигурацию, называющуюся AlternateDebug. Чуть позже эта конфигурация будет изменена так, чтобы исполняемая программа помещалась в папку AlternateDebug.
1. Вызовите диалог Configuration Manager (Диспетчер конфигурации).
2. Раскройте список Active Solution Configuration (Текущая конфигурация решения) и выберите в нем пункт <New...> (<Создать...>). Появится диалог New Solution Configuration (Создание конфигурации решения).
3. Введите AlternateDebug в качестве названия конфигурации. В списке Copy Settings from (Скопировать параметры из) выберите пункт Debug (Отладка). Установите флажок Also create new project configuration(s) (Создать также новую конфигурацию проекта), как показано на Рисунок А.9. Щелкните на кнопке ОК.
6. Выберите в главном меню Visual Studio пункт FileONewOProject (Файл^СоздатьО Проект ) Это приведет к появлению диалога New Project (Новый проект)
7. В окне Project Types (Типы проектов) выберите "Visual C++ Projects" ("Проекты Visual C++"), а в окне Templates (Шаблоны) — "Managed C++ Application" ("Приложение Managed C++")
8. Щелкните на кнопке Browse (Обзор), найдите папку Demos и щелкните на кнопке Open (Открыть)
9. В поле Name (Имя) наберите Bytes См рис А 6 Щелкните на кнопке ОК
Теперь давайте установим параметры компоновки приложения для новой конфигурации. (Если вас не устраивают параметры, установленные в стандартных конфигурациях, вы можете изменить и эти конфигурации.) Посмотрите на панель инструментов и убедитесь, что активной является созданная конфигурация AlternateDebug.
Хотя в .NET можно программировать, используя лишь компилятор командной строки, намного легче и приятнее использовать Visual Studio.NET. В этом приложении мы рассмотрим основы использования среды Visual Studio для редактирования, компиляции, запуска и отладки программ. Ознакомившись с ним, вы будете готовы использовать Visual Studio при знакомстве с остальными частями книги. В приложении рассмотрены основы, достаточные для того, чтобы вы смогли начать самостоятельно использовать Visual Studio. Дополнительная информация о возможностях Visual Studio излагается в главах книги по мере необходимости. При написании этой книги использовались бета-версии программного обеспечения, так что коммерческие его версии могут немного отличаться от описанных здесь. Кроме того, Visual Studio — сложное приложение для Windows, с широкими возможностями конфигурирования, поэтому могут отличаться также конфигурации окон и т.д. При знакомстве с Visual Studio у вас есть хорошая возможность почувствовать себя исследователем нового мира, богатого и разнообразного.
Запустить программу можно одним из следующих способов:
выбрав пункт меню Debug => Start Without Debugging (Отладка => Запуск без отладки); щелкнув на кнопке панели инструментов; нажав сочетание клавиш Ctrl-FS.Результатом работы программы будет появление окна консоли со следующим текстом (при нажатии на любую клавишу окно будет закрыто).
kilo = 1024
mega = 1048576
giga = 1073741824
tera = 1097364144128
Press any key to continue
Запустить программу в отладчике можно одним из следующих способов:
выбрав пункт меню DebugOStart (ОтладкаОЗапуск); щелкнув на кнопке панели инструментов; нажав клавишу F5.Окно консоли при этом будет открыто и сразу же закрыто. Чтобы окно осталось открытым, необходимо изменить программу. Для этого можно вставить, например, ожидание ввода с клавиатуры. Для остановки выполнения программы можно использовать точки останова. Ниже в этом приложении мы еще рассмотрим возможности отладчика.