Назад | Начало урока | Вперед
Содержание

Глава 1

Что представляет собой пакет
Visual C++ .NET



Итак, вы решили стать программистом на языке C++. Это действительно хорошая
идея, Освоив этот язык, вы дополните свое резюме, сможете создавать потрясающие
приложения и находить общий язык с множеством очаровательных людей. Но главное— вы
сможете сказать, что владеете самым великолепным и мощным языком программирования из
всех когда-либо созданных.

Инструменты Visual C+ +

Не все качественные приложения занимают много места. Увидев впервые установочный комплект Visual C++, вы, наверное, решите, что чего-то в нем не хватает,— настолько он небольшой и компактный. Казалось бы, приложение, занимающее множество мегабайт памяти, должно иметь более внушительный вид. Однако такое впечатление создается потому, что наиболее массивная часть почти каждого установочного пакета— руководство пользователя — поставляется не в распечатанном, а в электронном виде. (Таким образом не только экономится место, но и спасается несколько деревьев.)

Открыв установочный пакет Visual C++, вы найдете в нем компакт-диск с программным обеспечением. На нем содержится множество инструментов, участвующих в создании программ на языке C++:

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

Компилятор, запускающий тысячи программ

Компилятор преобразует коды из вида, понятного программистам (исходные коды), к виду, воспринимаемому компьютером (выполняемые коды). В приложении Visual O + есть два
компилятора:

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

Что представляет собой строковый компилятор

Строковый компилятор- это компилятор, не имеющий графического пользовательского интерфейса. Он
быстр, но не очень дружелюбен по отношению к пользователю. Чтобы обратиться к нему, нужно набрать
специального вида компактную инструкцию, подобную этой:

cl /FR /WX foo.cpp

В данном примере первый элемент является именем компилятора, который вы хотите использовать, второй и третий представляют собой команды, сообщающие компилятору, что нужно делать, и наконец последний - это имя файла, который должен быть откомпилирован. (Использовать строковый компилятор
вместо интегрированной среды разработки могут только те программисты, которые знают, например, что
команда /FR применяется для отображения окна просмотра информации, а команда /wx обозначает,
что все предупреждения нужно интерпретировать как ошибки. Те, для кого приведенная выше строка является просто набором букв, использовать строковый компилятор не могут.)

В старые добрые времена известны были только строковые компиляторы. Те, кто занимается программированием довольно длительное время, используют в основном строковые компиляторы, во-первых, по привычке, а во-
вторых, поскольку они предоставляют возможность дополнительного использования множества замечательных
инструментов. Те же, кто только начинает программировать на Visual C++, предпочитают интегрированную среду разработки программ, поскольку она намного понятнее и проще в использовании.

Отладчик программ

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

Все возникающие при запуске программы проблемы можно разделить на две категории:
синтаксические ошибки и логические ошибки.

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

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

Рассмотрим это на примере. Допустим, вы создали программу, отслеживающую количество денег на вашем счете. Но при написании ее кодов забыли набрать команду, прибавляющую суммы, вносимые на счет. Или наоборот: забыли набрать команду, вычитающую из обшей суммы деньги, снимаемые со счета. Тогда сколько бы денег вы со счета не снимали, состояние счета не изменялось бы (этакий вечный источник наличных). Это пример логической
ошибки. Вы забыли набрать один оператор, и в результате получилась хотя и симпатичная,
но работающая неправильно программа.

Исправить логические ошибки намного сложнее, чем синтаксические. Сложность заключается в их поиске и локализации места возникновения. Помочь справиться с этой проблемой
призван отладчик программы. Отладчик позволяет строка за строкой проследить за выполнением программы и просмотреть значения обрабатываемых при этом данных. Таким образом, обнаружив, что какая-то переменная приняла неверное значение, вы сразу же определите
место возникновения ошибки.

Интегрированная среда разработки программ

Пакет Visual C++ включает в себя интегрированную среду разработки (devent.exe), объединяющую множество разнообразных инструментов, значительно упрощающих процесс создания программ. Если вы используете среду разработки Visual C++. нет необходимости изучать и запоминать принципы работы каждого инструмента в отдельности.

Среда разработки Visual C++ состоит из таких основных компонентов:

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

Библиотеки — хранилища электронных инструментов

Библиотеки — это наборы заранее созданных функций и классов, которые могут быть использованы для решения многих типичных задач. Приложение Visual С+-1- имеет несколько
библиотек. Они могут заметно облегчить процесс создания программ, поскольку позволяют
использовать готовые варианты вместо разработки собственных решений.
Среда .NET, no существу, является одной большой библиотекой. Библиотеки выполнения (обозначаемые аббревиатурой RLT — runtime libraries) содержат множество полезных функций, выполняющих
математические вычисления, обработку текстовых значений и многие другие задачи. Файлами библиотек RLT являются libc.lib, libcmt.lib и msvcrt.lib.

О чем говорят названия файлов библиотек

Со временем вы обратите внимание на то, что одни и те же библиотеки реализованы в нескольких вариантах. Каждый вариант соответствует разным наборам опций, поддерживаемых библиотекой и обозначаемых буквой (или буквами), которая добавляется в начале или в конце названия файла библиотеки.
Например, название mfc70d.lib обозначает, что это файл библиотеки MFC, выполненной в варианте для отладчика (d - debuggable version).
Вот список букв, используемых для обозначения версий библиотек;

D Debuggable (Отладка);
МТ Multithreacl (Многопоточные процессы);
О OLE (Технология связывания и внедрения объектов);
S Static (Статические объекты);
U Unicode (Уникоды).

Эти разумные утилиты

Visual C++ содержит набор утилит, позволяющих проследить за выполнением .NET- и Windows-программ. Обычно только опытные программисты пользуются услугами утилит, наиболее важной среди которых является Spy+-. Во время выполнения программы она отображает на экране информацию о классах, применяемых этой программой. Вы можете использовать ее для отслеживания не только своих, но и чужых программ. Другие утилиты созданы для упрощения процесса программирования. В основном они рассчитаны на опытных
программистов и предназначены для использования совместно с инструментами командной
строки. Наиболее часто используемой среди них является утилита NMAKE. Но вы можете
также найти для себя парочку полезных утилит, не требующих умения работать с командной
строкой.
Например утилита W1NDIFF может сравнивать между собой содержимое двух файлов и находить в них отличия. Утилита ZOOMIN позволяет изменять размеры отображаемых
объектов таким образом, чтобы они выглядели на экране именно так, как вы хотите.

Помощь, которая всегда рядом

Все. что есть в пакете Visual C++ (компиляторы, отладчики, среда разработки, библиотеки,утилиты), должно сопровождаться документацией. Однако, чтобы не делать установочный пакет слишком громоздким, компания Microsoft поставляет документацию в электронном виде.
Причем эта документация организована в виде оперативной справочной системы, позволяющей
быстро находить нужную информацию и читать ее, не выходя из среды разработки программ.
Справочная система может быть открыта также в отдельном окне. В самом крайнем случае вы
можете лаже подключить дополнительный монитор к своей системе и постоянно иметь перед
глазами справку об инструментах и возможностях, используемых в данный момент.

Не знаете с чего начать — просмотрите примеры программ
Пакет Visual C++ включает в себя множество примеров готовых программ, воспользовавшись которыми вы сможете быстрее и проще создавать собственные программы. Некоторые из них демонстрируют определенные приемы программирования, другие являются готовыми вариантами решения каких-то задач, например обработки текстовой информации. Самое лучшее в этих программах то, что их коды можно копировать и вставлять в коды своих программ. Это сохранит ваше время и силы и позволит сосредоточить внимание на решении более специфических проблем.

Управляемые и не управляемые программы

Visual C++ позволяет создавать программы как для среды Windows, так и для среды Microsoft
.NET. В этой книге основное внимание уделяется вопросам разработки приложений для
среды .NET, но будет также рассмотрено и создание приложений для Windows. Среда .NET,
разработанная компанией Microsoft, предназначена для создания программ, работающих в Internet.
Она включает в себя язык CLR (Common Language Runtime) и библиотеку классов.

CLR является основой среды .NET-— все работает под его управлением. CLR следит за
выполнением кодов и обеспечивает предоставление программам всех сервисов нижнего
уровня, таких, например, как управление памятью. Библиотека классов является приложением среды .NET и содержит в себе набор готовых классов, которые вы можете использовать
при создании объектно-ориентированных программ. (О том, что такое классы и для чего они
нужны, вы узнаете чуть позже.)

Чтобы работать в среде .NET, программа должна быть изначально созданной для этой цели. Это подразумевает использование при ее создании классов .NET, но главное — она должна быть откомпилирована для работы в этой среде. Visual C++ может удовлетворить оба требования. Коды программы, которая может работать в среде .NET, называются управляемыми.

Коды программ, написанных для работы в среде Windows и не предназначенных для использования в среде .NET, принято называть неуправляемыми.

Если вы не используете при разработке программы систему создания приложений, снабдить
программу хорошим пользовательским интерфейсом будет отнюдь не просто. Пользователям
очень нравятся программы с качественным интерфейсом, однако программистам приходится
потратить немало времени и усилий, чтобы создать его. Например, чтобы создать небольшую
программу для Windows, содержащую несколько пунктов меню и отображающую на экране сообщение "Hello World!", потребуется набрать от двух до четырех тысяч строк с кодами.
(Программисты называют между собой такие программы Hello World. По тому, насколько легко
или сложно создать программу Hello World, определяют, насколько проста и успешна та или
иная система программирования.) Это действительно так, если не использовать при создании
программы библиотеку классов среды .NET. Только программисты, помешанные на командах
нижнего уровня, занимаются подобными глупостями, все же остальные используют среду разработки .МЕТ. И сложность даже не в том, что нужно набирать эти четыре тысячи строк, а в
том, что нужно знать и помнить тысячи команд, используемых для управления средой Windows.
Это, пожалуй, не та информация, которой стоит засорять голову.

Большинство программ на порядок сложнее, чем Hello World, и при их создании приходится решить множество задач, прежде чем они заработают так, как нужно. Например, к их
числу относятся такие задачи:

Обратите внимание, что ни одно из этих действий не имеет никакого отношения к выводу
чего-либо на экран.

Системы создания приложений позволяют автоматически решать эти и многие другие задачи. Например, приступив к созданию программы, вы можете воспользоваться классом System. Windows.Forms.Application, содержащим в себе все коды, необходимые для начала написания программы. В частности, этот класс содержит коды, необходимые для создания окон.
Эти и подобные им классы автоматически вставляют в коды вашей программы типичные
фрагменты, что дает возможность сосредоточиться на решении более важных задач.

Visual C++ содержит также другие системы создания приложений, например библиотеку MFC (Microsoft Foundation Classes), включающую в себя классы C++, используемые при создании Windows-программ. Библиотека ATL ( Active Template Library) содержит шаблоны C++, используемые при создании объектов для модели COM (Component Object Model). Однако системы ATL и СОМ настолько сложны, что их использование вызывает трудности даже у хакеров со стажем, а потому в данной книге рассматриваться не будут.


Назад | Начало урока | Вверх | Вперед
Содержание