Программирование для карманных компьютеров.
Среда разработки eMbedded Visual C++ 3.0.
Несмотря на то, что среда eVC предназначена для разработки программ для «маленьких» компьютеров, сама среда – вполне серьезный инструмент. Знакомство со средой стоит начать со структуры экрана.
Окна.
Главное окно среды представляет собой окно в стиле SDI, когда все прочие документы и окна открываются в главном окне и не могут покинуть его пределы. Таким образом, главное окно является контейнером для других окон. На нем размещены панель инструментов и главное меню (рис. 4.1).

Рис. 4.1. Главное окно среды.
Остальные окна могут быть выведены на экран или скрыты в зависимости от режима работы. Основным рабочим окном является окно Workspace (рис. 4.2).
Рис. 4.2. Окно Workspace со всеми вкладками.
В окне Workspase может находиться от одной до трех вкладок. Если был создан проект, то в окне Workspase появится вкладка FileView. Если в проекте есть классы, то будет добавлена вкладка ClassView, а если к проекту подключены какие-то ресурсы, то вкладка ResourceView незамедлительно объявится внизу окна. Каждая из вкладок отображает структуры файлов, классов и ресурсов, включенных в проект, в виде дерева с раскрывающимися узлами. Щелчок на узле приводит к его раскрытию, а двойной щелчок на конечном элементе – к открытию данного элемента для редактирования. Если щелкнуть на имени файла в окне FileView, то этот файл будет открыт в окне редактора кода. При щелчке на имени класса в окне ClassView, на экран будет выведен файл, в котором объявлен данный класс. Двойной щелчок на одном из имен ресурсов приведет к открытию данного ресурса в соответствующем ему редакторе ресурсов. Таким образом, взаимодействие с окном Workspace может повлечь за собой появление множества окон редакторов разного типа.
Окно Output (рис. 4.3) отображает информацию на выходе того или иного режима работы среды.
Рис. 4.3. Окно Output.
В этом окне обычно отображаются четыре вкладки, которые перечислены в следующем списке.
· Вкладка Build отображает информацию о процессе построения программы из исходного кода, сигнализирует об ошибках и предупреждениях на этапе компиляции, линковки и загрузки на устройство.
· Вкладка Debug отображает информацию о загружаемых модулях и библиотеках, выводит сообщения в режиме отладки.
· Вкладки Find in Filesl и Find in Files2 содержат информацию о результатах поиска.
Кроме перечисленных стандартных окон на экран могут быть выведены окна режима отладки. О них будет сказано в соответствующем разделе.
Окна в eVC могут находиться как в режиме Docked, когда окно «прилипает» к одной из сторон основного окна или к другому окну, так и в режиме Undocked, когда окно свободно перемещается по экрану. Управлять этими режимами можно при помощи команды Docking View в контекстном меню окна либо при помощи команды меню Tools ? Options… ? Workspace ? Docking Views. Пройдя по данной цепочке, можно обнаружить список открытых окон. Установка флажка против соответствующего окна включает его свойство Docking.
У окон Workspace и Output в контекстном меню есть команда Hide, позволяющая скрыть данное окно. Вывести окно на экран после вскрытия можно командой View ? Workspace (View ? Output). Кроме этого отображением этих окон еще управляют инструменты со стандартной панели инструментов.
· вывести/скрыть окно Workspace.
· вывести/скрыть окно Output.
· Полностью за управление состоянием и свойствами окон отвечает пункт меню Window. Его команды приведены в следующем списке.
· Команда New Window создает еще одно окно для текущего документа. Изменения отображаются синхронно в обоих окнах, а вот положение курсора и видимая часть документа могут быть различными.
· Команда Split разбивает текущее окно на четыре части крестообразным разделителем. Каждая из частей отображает один и тот же документ, но в каждой части можно установить свое положение текстового курсора. После разбиения можно перетащить вертикальный разделитель к левому или правому краю, и окно будет разбито на две части по горизонтали. Подобным образом можно поступить и горизонтальным разделителем.
· Команда Docking View переключает состояние Docking/UnDocking для активного окна.
· Команда Close закрывает активное окно в редакторе.
· Команда Close All закрывает все открытые окна проекта.
· Команда Next, Prevouse осуществляет переход вперед и назад по списку открытых окон. Активизируемое окно выводится на передний план.
· Команды Cascade, Tile Horizontally, Tile Vertically размещают все окна каскадом, по горизонтали или по вертикали соответственно.
· Команда Windows… выводит на экран список открытых окон.
Настройка панелей инструментов и меню.
Панели инструментов в eVC настраиваются в широких пределах. Разработчик может создать любую удобную для него конфигурацию среды. Настройка панелей инструментов, меню и некоторых других параметров производится при помощи команды меню Tools ? Customize. Эта команда выводит на экран окно настройки параметров среды разработки (рис. 4.4).
Рис. 4.4. Окно команды Customize.
В этом окне располагается пять вкладок, каждая из которых позволяет настроить соответствующую функциональность среды. Commands Вкладка Commands позволяет настроить команды на панелях инструментов и создавать новые панели инструментов, содержащие произвольные группы команд. На этой вкладке расположены органы управления, которые рассматриваются в следующем списке. · Выпадающий список Category, в котором можно выбрать группу команд. Команды, входящие в данную группу, отобразятся в зоне Buttons. · Группа Show Menu for позволяет выбрать, какие меню будут выводиться на экран в режиме настройки. Если выбрать значение All Menus, то будут выведены все меню, но после закрытия окна Customize останутся только те из них, которые необходимы для данного редактора. · Кнопка Modify Selection позволит выполнить ряд операций над командами инструментов и командами меню. С ее помощью можно создать новую группу команд, установить изображение для данного пунта меню или команды и задать режим отображения. · Кнопка Reset All Menus приводит все меню в стандартное состояние, удаляя все сделанные изменения. Редактирование меню и панелей инструментов осуществляется путем перетаскивания кнопок и команд мышью как из зоны Buttons на панель, так и на самой панели.Toolbars Эта вкладка позволяет задать режимы отображения панелей инструментов. Установка флажка в зоне Toolbars выводит выбранную панель инструментов на экран. Флажки Show Tooltip, With Shortcut Key и Large Buttons позволяют включать и выключать отбражение подсказок, клавиш быстрого доступа и кнопок большого размера. Кнопки Delete, New, Reset и Reset All дают возможность создать новую панель, удалить одну из пользовательских панелей, привести в исходное состояние выбранную панель или все панели среды.Tools Эта вкладка позволяет добавлять в среду новые инструменты, а также удалять или редактировать имеющиеся инструменты. Для добавления нового инструмента надо нажать кнопку New, в зоне Menu Contents ввести название инструмента, в строке Command ввести полный путь к программе, в строке Arguments ввести параметры командной строки, а в строке Initial directory ввести каталог, в котором располагается программа. После этого соответствующий рабочий инструмент будет добавлен к среде разработки.Keyboard На этой вкладке можно настроить «горячие» клавиши для любой из команд меню. Делается это при помощи простой последовательности действий. · Выбрать в зоне Category меню File. · В зоне Command выбрать значение ApplicationExit. · В зоне Editor выбрать значение Main. · Щелкнуть машью в строке Press new shortcut key, а затем нажать сочетание клавиш Alt+X. Это сочетание появится в строке. · Нажать кнопку Assign. Сочетание Alt+X появится в зоне Current keys. · Нажать кнопку Close, чтобы закрыть окно Customize, а затем нажать сочетание клавиш Alt+X. Среда завершит свою работу.Add-In and macro files · Эта вкладка содержит список макросов, записанных командой Tools ? Record Quick Macro или созданных при помощи команды Tools ? Macro… и надстроек среды, написанных на языке VBScript. Установка флажка позволяет активизировать выбранный в списке макрос. Работа с файлами и управление проектами. Эта часть работы в среде еVС достаточно проста. Но и она требует определенного рассмотрения. Правильное использование инструментов позволит не тратить время на рутинные операции и сосредоточиться именно на программировании.Меню File Основную нагрузку при работе с файлами на себе несет меню File. Назначение пунктов этого меню приведено в следующем списке. · Команда New выводит на экран окно создания нового проекта. Это окно содержит в себе список мастеров, позволяющих создавать проекты разного типа. · Команда Open выводит на экран стандартный диалог открытия файла. Она позволяет открыть файл любого типа, который известен среде разработки. · Команда Close закрывает текущий файл. · Команда Open Workspace выводит на экран стандартный диалог открытия файла. Эта команда позволяет открыть файл рабочего пространства с расширением. vcw или. dcw. · Команда Save Workspace сохраняет текущее рабочее пространство на диске. · Команда Close Workspace закрывает текущее рабочее пространство и все его файлы. · Команда Save сохраняет на диске текущий файл. · Команда Save As… сохраняет текущий файл с новым именем или в новом месте. · Команда Save All сохраняет все открытые файлы активного проекта. · Команда Page Setup… позволяет настроить параметры бумаги для печати текущего файла. · Команда Print… печатает текущий файл на принтере. · Команда Recent Files выводит список недавно открывавшихся файлов. · Команда Recent Workspaces отображаеит список недавно открывавшихся рабочих пространств. · Команда Exit позволяет завершить работу со средой.Структура и файлы проекта Вершиной проектной иерархии является рабочее пространство workspace, которое позволяет организовать работу с группой проектов. Оно содержит в себе один или более проектов. Файл рабочего пространства имеет расширение. vcw и является простым текстовым файлом, содержащим в себе перечень входящих в рабочее пространство проектов. Создание нескольких проектов внутри одного рабочего пространства имеет смысл только в том случае, когда проекты объединены логически. К таким решениям можно отнести комплект клиентского и серверного приложения или выполняемое приложение и библиотеку. Упражнение 4.2. 1. Закрыть текущее рабочее пространство, выполнив команду File ? Close workspace. 2. Создать новое рабочее пространство при помощи команды меню File ? New и в диалоговом окне, которое будет выведено на экран, выбрать вкладку Workspaces. 3. В строке Workspace Name нужно ввести значение MyWSP, а затем нажать кнопку OK. Новое пустое рабочее пространство будет создано. Вторым уровнем проектной иерархии является проект. Проект объединяет в себе все файлы, которые необходимы для создания и работы приложения. Для того чтобы начать работу с проектом в среде, можно создать новое рабочее пространство, в которое вы можете добавить один или несколько проектов. Но есть и другой способ. Можно просто создать новый проект. При этом рабочее пространство будет создано автоматически с тем же именем, которое получит проект. · В примере был использован первый способ, когда сначала было создано рабочее пространство. Теперь нужно создать в нем проект. Упражнение 4.2 (продолжение). 4. Выполнить команду File ? New. В появившемся диалоговом окне нужно выбрать вкладку Projects и в списке указать пиктограмму WCE Pocket PC 2002 Application. 5. В строке Project Name ввести имя проекта FirstPrApp, а затем взвести флажок Add to current workspace. 6. Нажать кнопку OK. На экран будет выведен мастер создания проекта. В этом окне располагаются три пиктограммы. Выбор пиктограммы An empty project приведет к созданию пустого проекта. Кроме самого файла проекта ничего не будет создано. При выборе пиктограммы A Simple Windows CE application будут созданы файл проекта и файлы для запуска простейшего приложения Windows CE. Выбор пиктограммы A typical «Hello Word» application приведет к созданию приложения с формой, главным меню и надписью Hello, Word! в центре формы. Нужно выбрать последний вариант и нажать кнопку Finish. Приложение будет создано. 7. В созданном приложении нужно открыть вкладку FileView в окне Workspace и раскрыть структуру проекта FirstPrApp. В списке нужно отыскать файл ReadMe.txt. В этом файле кратко перечислены все созданные в составе проекта файлы и их назначение. FirstPrApp.vcp – файл проекта. Это текстовый файл, который может быть открыт в любом текстовом редакторе. Редактировать этот файл не следует, это делается средой автоматически, когда разработчик устанавливает настройки проекта. Файл с расширением. vcp представляет собой набор инструкций для утилиты eVC NMAKE, которая осуществляет управление компиляцией модулей и сборкой файла проекта. FirstPrApp.cpp – основной файл проекта. В этом файле располагается код проекта. То есть именно в этом файле можно найти код основной процедуры WinMain и код инициализации окна и его компонентов. В проекте приложения может присутствовать сколько угодно файлов с расширением. cpp, но один, в котором реализована функция WinMain, должен быть обязательно. Один файл. cpp реализует один модуль (единицу компиляции) кода. FirstPrApp.h – заголовочный файл к модулю FirstPrApp.cpp. В этом файле находятся все объявления соответствующего модуля, которые должны быть видны из других модулей. Реализация кода также может присутствовать в файле с расширением.h. FirstPrApp.rc – файл ресурсов. В этом файле содержится список ресурсов, подключаемых к проекту (пиктограммы, диалоги, строки, меню и т. д.). FirstPrApp.ico – файл, содержащий пиктограмму приложения. StdAfx.h, StdAfx.cpp, Newres.h – файлы, используемые для режима кэширования компиляции стандартных заголовков. Когда в проекте используются стандартные файлы, нет нужды изменять их в процессе работы над проектом. Соответственно, нет необходимости перекомпилировать эти файлы каждый раз при сборке проекта, достаточно сделать это один раз, что значительно ускоряет время компиляции и сборки приложения. Resource.h – стандартный файл объявления новых ресурсов. · В проект, создаваемый при помощи технологии Microsoft Foundation Classes, может входить еще множество дополнительных файлов, создаваемых мастером. Количество этих файлов зависит от того, насколько сложный проект создает разработчик. · Все файлы с расширениями. cpp и. h могут быть прочитаны и отредактированы любым текстовым редактором.· При создании рабочего пространства в текущем каталоге создается папка с именем рабочего пространства, в которой размещается файл с расширением. vcw. При создании подключаемого к рабочему пространству проекта, папка проекта создается внутри папки рабочего пространства и имеет имя, совпадающее с именем проекта. Все файлы проекта создаются внутри этой папки.