лекции / Shchupak_Yu._Win32_API_Razrabotka_prilozheniy_dlya_Windows
.pdf
562 |
Глава 12. Специальные приложения |
|
|
Определение точек массива ppt и создание региона отсечения реализованы в теле функции TimerFunc. После выбора региона отсечения в контекст устройства g_hDC вызывается метод Draw:
dibSect.Draw(g_hDC);
Профилирование этой инструкции в отладочной версии программы (с помо щью таймера — объекта класса KTimer) показало, что она выполняется примерно за 0,2 мс.
Тестирование приложения ArincReceiver, выполняемого со скоростью сканиро вания 90°/с, показало, что загрузка центрального процессора составляет не более 5 %!
Таким образом, для рисования в реальном времени использование DIB секций в сочетании с регионом отсечения может быть неплохим решением.
Напомним, что термин «реальное время» в применении к Windows приложени ям является весьма условным, поскольку Windows не является операционной сис темой реального времени. Об этом мы уже говорили в главе 10. Поэтому возможны отдельные сбои в функционировании таких программ, как ArincReceiver, если Windows вдруг решит, что у него есть дела поважнее. Но так как имитатор ArincReceiver не управляет никакими стратегическими объектами, то подобные сбои вполне допустимы.
564 |
Приложение 1. Интегрированная среда Visual C++ 6.0 |
|
|
На самом деле главное окно Visual C++ принадлежит студии разработчика Microsoft Developer Studio, которая является интегрированной средой, поддер живающей Visual C++, Visual J, MS Fortran Power Station и некоторые другие продукты.
Рис. П1.1. Главное окно (рабочий стол) Visual C++
Рабочий стол Visual C++ обычно содержит три окна.
Окно Project Workspace (окно рабочей области) позволяет эффективно управ лять проектом при написании и сопровождении больших многофайловых про грамм. Пока что (см. рис. П1.1) оно закрыто, но после создания нового проекта или загрузки сохраненного ранее проекта одна из вкладок этого окна будет содер жать список файлов, входящих в проект.
Окно Editor(окно редактора) используется для ввода и проверки исходного кода. Окно Output (окно вывода) служит для вывода сообщений о ходе компиляции, сборки и выполнения программы. В частности, сообщения о возникающих ошиб
ках будут появляться именно в этом окне.
Под заголовком главного окна, как и во всех Windows приложениях, распола гается строка меню. Назначение команд меню и кнопок панелей инструментов мы будем рассматривать по мере необходимости, разбирая основные приемы ра боты в IDE. Здесь же только заметим, что для кнопок панелей инструментов пре дусмотрена удобная подсказка. Если пользователь наведет курсор мыши на кноп
566 |
Приложение 1. Интегрированная среда Visual C++ 6.0 |
|
|
Прежде чем продолжать работу, свернем временно главное окно Visual C++ и заглянем в папку HelloFromMsgBox, созданную мастером приложений для нашего проекта, а точнее, для нашей рабочей области. Там будут расположены файлы
HelloFromMsgBox.dsw, HelloFromMsgBox.dsp, HelloFromMsgBox.opt, HelloFromMsgBox.ncb. Помимо этого там же будет расположена папка Debug или Release, что зависит от конфигурации проекта. Поясним назначение перечисленных файлов:
HelloFromMsgBox.dsw — файл рабочей области проекта, используемый внутри интегрированной среды разработки. Он содержит всю информацию о проек тах, входящих в данную рабочую область.
HelloFromMsgBox.dsp — проектный файл, используемый для построения отдель ного проекта. В ранних версиях Visual C++ этот файл имел расширение .mak.
HelloFromMsgBox.opt — файл, в котором хранятся опции рабочей области про екта. Благодаря этому файлу при каждом открытии рабочей области проекта все параметры Developer Studio, выбранные во время последнего сеанса рабо ты с данной рабочей областью, будут восстановлены.
HelloFromMsgBox.ncb — этот служебный файл создается компилятором и содер жит информацию, которая используется в инструменте интегрированной сре ды под названием ClassView. Вкладка ClassView находится в окне Project Workspace и показывает все классы C++, определения которых входят в состав проекта, а также все члены этих классов.
Debug — это папка, в которую будут помещаться файлы, формируемые компи лятором и сборщиком. Из них нас будет интересовать только исполняемый файл, имеющий расширение .exe.
Развернем обратно главное окно Visual C++ с открытой рабочей областью (см. рис. П1.2), чтобы продолжить работу с первой программой. Следует отме тить, что в окне Project Workspace появились вкладки Class View и File View.
Перейдите на вкладку File View. Эта вкладка предназначена для просмотра спис ка файлов проекта. Откроем список HelloFromMsgBox files, щелкнув мышью на знач ке с изображением плюса. В результате будет отображено дерево списка файлов, содержащее пиктограммы папок Source Files, Header Files, Resource Files. Все папки пусты, так как проект был создан с опцией An empty project.
Добавление к проекту файлов с исходным кодом
В состав проекта можно добавлять как новые файлы, так и уже существующие. Обе эти ситуации надо рассматривать отдельно.
Добавление существующего файла
В этом случае файл с исходным кодом (пусть это будет файл HelloFromMsgBox.cpp) вы уже подготовили ранее. Теперь, чтобы добавить его в состав проекта, выпол ните простую последовательность действий:
Скопируйте исходный файл HelloFromMsgBox.cpp в папку рабочей области про екта. В данном случае это будет папка HelloFromMsgBox.
Вернитесь к списку HelloFromMsgBox files в окне Project Workspace вашего проек та и щелкните на папке Source Files.
В появившемся контекстном меню выберите команду Add Files to Folder…
Запуск IDE. Типы приложений |
569 |
|
|
СОВЕТ
Иногда при компоновке многофайлового проекта с командой Build будут отображаться сообщения об ошибках компиляции или сборки, которые вы не можете объяснить. Рекомендуем вам в этом случае обязательно попробовать выполнить команду Rebuid All. Во многих случаях такой прием помогает «починить» ваш проект.
Рис. П1.4. Панель инструментов Build MiniBar
Откомпилируйте проект, щелкнув на кнопке Build (F7). Диагностические со общения компилятора и сборщика будут отображаться в окне вывода Output. Мы надеемся, что у вас все будет в порядке и последняя строка в окне вывода будет выглядеть следующим образом:
HelloFromMsgBox.exe - 0 error(s), 0 warning(s).
Теперь вы можете запустить приложение на выполнение, нажав кнопку Execute Program (Ctrl+F5).
Кнопка Go (F5) используется для запуска программы в отладочном режиме. Приложение может выполняться под отладчиком, только если оно построено в отладочной конфигурации проекта.
Конфигурация проекта
Visual C++ позволяет строить проект либо в отладочной конфигурации (Win32 Debug), либо в выпускной конфигурации (Win32 Release). Пока программа не отла жена, лучше работать с проектами в отладочной конфигурации. Обычно она ис пользуется по умолчанию. Вы можете проверить, с какой конфигурацией на самом деле идет работа. Для этого надо выполнить команду меню Project Settings…. В результате будет открыто диалоговое окно Project Settings. Проверьте, какое зна чение установлено в окне комбинированного списка Settings For:. Если это не Win32 Debug, то нужно выполнить команду меню Build Set Active Configuration…
и выбрать нужное значение.
Как закончить работу над проектом
Когда работа будет завершена, следует выполнить команду меню File Close Work-space. А можно просто закрыть приложение Visual C++.
Как открыть проект, над которым вы ранее работали
Есть три способа открыть проект:
1.Запустите среду Visual C++. Выберите в меню File пункт Open Workspace… В открывшемся диалоговом окне надо отыскать вашу папку с проектом, а в ней —
570 |
Приложение 1. Интегрированная среда Visual C++ 6.0 |
|
|
файл ProjectName.dsw. Теперь можно открыть этот файл, щелкнув по нему мышью
2.Запустите среду Visual C++. Выберите меню File и наведите курсор мыши на пункт Recent Workspaces. Если во всплывшем меню со списком последних фай лов, с которыми шла работа, вы найдете интересующий вас файл ProjectName.dsw, то щелкните на нем.
3.Найдите вашу папку с проектом, а в ней отыщите файл ProjectName.dsw, после чего просто щелкните на нем мышью.
Встроенная справочная система
Microsoft Developer Network (MSDN) — это набор онлайновых и оффлайновых служб, предназначенных для оказания помощи разработчику в написании прило жений с использованием продуктов и технологий фирмы Microsoft.
Справочная система MSDN (MSDN Library) обычно устанавливается на ком пьютере вместе со средой Microsoft Visual Studio 6.0. Она содержит обширную информацию по программированию, в том числе и описание структур данных и функций Win32 API. Далее для краткости вместо термина «справочная система MSDN» будем употреблять короткий термин «MSDN».
Если MSDN установлена, то в IDE Visual C++ она доступна через меню Help главного окна. Кроме того, очень удобно пользоваться интерактивной справкой. Если вы находитесь в окне Editor, то достаточно навести текстовый курсор на интересующий вас оператор или библиотечную функцию C++ и нажать клавишу F1. При этом будет вызвана MSDN с отображением нужной вам информации. Если запрошенный термин встречается в разных разделах MSDN, то сначала появится диалоговое окно Найденные разделы. В списке разделов надо выбрать тот, в котором упоминается «Visual C++» или «Windows SDK».
Работа с отладчиком
Полное описание возможностей встроенного отладчика Visual C++ и приемов работы с ним может потребовать отдельной книги. Поэтому мы рассмотрим толь ко начальные сведения о работе с отладчиком Visual C++. Проще всего это сде лать, написав программу, заведомо содержащую несколько ошибок, а затем по смотреть, как с помощью отладчика можно найти и исправить эти ошибки.
Также мы научимся устанавливать в программе точки прерывания и выпол нять программу до заданной точки. Когда во время выполнения встречается точ ка прерывания, программа останавливается, а на экране появляется отлаживае мый код. Это дает возможность детально выяснить, что именно происходит в программе в текущий момент.
Кроме того, программу можно выполнять последовательно, строку за строкой. Такой процесс называется пошаговым выполнением. Этот режим позволяет сле дить за тем, как изменяются значения различных переменных. Иногда он помога ет понять, в чем заключается проблема. Если обнаруживается, что переменная принимает неожиданное значение, то это может послужить отправной точкой для выявления ошибки.
После обнаружения ошибки ее можно исправить и заново выполнить програм му в отладочном режиме.
