49039 (588626), страница 5
Текст из файла (страница 5)
• средства визуального проектирования приложений, работающих с базами данных;
• модуль SQL Editor;
• модуль SQL Debugger;
• классы библиотеки MFC для доступа к базам данных;
• ADO Data-Bound Dialog Wizard;
• Поддержка технологии Remote Automation;
• Visual SourceSafe.
Компилятор MicrosoftVisualC++ содержит также средства, позволяющие в среде Windows разрабатывать приложения для других платформ, в том числе для AppleMacintosh. Кроме того, программа снабжена редакторами растровых изображений, значков, указателей мыши, меню и диалоговых окон, позволяющими работать с перечисленными ресурсами непосредственно в интегрированной среде.
Коснувшись темы интеграции, следует упомянуть о мастере ClassWizard, помогающем в кратчайшие сроки создавать приложения OLE с использованием библиотеки MFC . Инструменты разработчика Новая версия компилятора MicrosoftVisualC++ содержит множество интегрированных средств визуального программирования. Ниже перечислены утилиты, которые вы можете использовать непосредственно из VisualC++. Интегрированный отладчик Разработчики компании Microsoft встроили первоначальный отладчик CodeView непосредственно в среду VisualC++. Команды отладки вызываются из меню Debug. Встроенный отладчик позволяет пошагово выполнять программу, просматривать и изменять значения переменных и многое другое.
Встроенные редакторы ресурсов позволяют создавать и модифицировать ресурсы Windows, такие как растровые изображения, указатели мыши, значки, меню, диалоговые окна и т.д. Редактор диалоговых окон — это достаточно удобное средство, позволяющее легко и быстро создавать сложные диалоговые окна. С помощью этого редактора в разрабатываемое диалоговое окно можно включить любые элементы управления (например, надписи, кнопки, флажки, списки и т.д.). При этом вы можете изменять как внешний вид элементов управления, так и их свойства (наряду со свойствами самого диалогового окна). Редактор изображений позволяет быстро создавать и редактировать собственные растровые изображения, значки и указатели мыши. Пользовательские ресурсы данного типа сохраняются в файле с расширением RC и включаются в файлы сценариев ресурсов. Редактор двоичных кодов позволяет вносить изменения непосредственно в двоичный код ресурса. Редактор двоичных кодов следует использовать только для просмотра ресурсов или внесения мелких изменений в те из них, тип которых не поддерживается в VisualC++. Редактор строк представляет собой ресурс, содержащий список идентификаторов и значений всех строковых надписей, используемых в приложении. К примеру, в этой таблице могут храниться сообщения, отображаемые в строке состояния. Каждое приложение содержит единственную таблицу строк. Наличие единой таблицы позволяет легко менять язык интерфейса программы — для этого достаточно перевести на другой язык строки таблицы, не затрагивая код программы.
Дополнительные утилиты ActiveX Control Test Container С помощью этой утилиты, разработанной специалистами Microsoft, вы можете быстро протестировать созданные вами элементы управления. При этом можно изменять их свойства и характеристики. APITextViewer Данная утилита позволяет просматривать объявления констант, функций и типов данных Win32 API, а также копировать эти объявления в приложения VisualBasic или в буфер обмена. AVIEditor Эта утилита позволяет просматривать, редактировать и объединять AVI-файлы. DataObjectViewer Утилита DataObjectViewer отображает список форматов данных, предлагаемых объектами ActiveX и OLE, которые находятся в буфере обмена или участвуют в операции перетаскивания (drag-and-drop). DDESpy эта утилита предназначена для отслеживания всех DDE-сообщений. DocFileViewer эта утилита отображает содержимое составных OLE-документов. ErrorLookup ErrorLookup эта утилита позволяет просматривать и анализировать всевозможные сообщения об ошибках. HeapWalkUtility Эта утилита выводит список блоков памяти, размещенных в указанной динамической области (куче). HelpWorkshop Эта утилита позволяет создавать и редактировать файлы справки. OLE Client/Server, Tools иView Утилита OLEViewer отображает информацию об объектах ActiveX и OLE, инсталлированных на вашем компьютере. Эта утилита также позволяет редактировать реестр и просматривать библиотеки типов. Утилиты OLE Client и OLE Server предназначены для тестирования OLEклиентов и серверов. TheProcessViewer Эта утилита позволяет следить за состоянием выполняющихся процессов и потоков. ROTViewer Эта утилита отображает информацию об объектах ActiveX и OLE, в данный момент загруженных в память. Spy++ Эта утилита выводит сведения о выполняющихся процессах, потоках, существующих окнах и оконных сообщениях. StressUtility Эта утилита позволяет захватывать системные ресурсы и используется для тестирования системы в ситуациях, связанных с недостатком системных ресурсов. В число захватываемых ресурсов входят глобальная и пользовательская динамические области (кучи), динамическая область GDI, свободные области дисков и дескрипторы файлов. Утилита Stress может выделять фиксированное количество ресурсов, а также производить выделение в ответ на получение различных сообщений. Кроме того, утилита способна вести журнал событий, что помогает обнаруживать и воспроизводить аварийные ситуации в работе программы. MFC Tracer Эта утилита позволяет устанавливать флаги трассировки в файле AFX.INI. С помощью данных флагов можно выбрать типы сообщений, которые будут посылаться приложением в окно отладки. Таким образом, утилита Tracer является средством отладки. UUIDGenerator Эта утилита предназначена для генерации универсального уникального идентификатора (UUID), который позволяет клиентским и серверным приложениям распознавать друг друга. WinDiff Эта утилита дает возможность сравнивать содержимое файлов и папок. Zooming Эту утилиту можно использовать для захвата и просмотра в увеличенном виде выбранной области на рабочем столе.
Компилятор VisualC++ содержит много новых инструментальных средств и улучшенных возможностей. В следующих параграфах дается их краткий обзор. Средства автоматизации и макросы С помощью сценариев VisualBasic вы можете автоматизировать выполнение рутинных и повторяющихся задач. VisualC++ позволяет записывать в макрокомандах самые разные операции со своими компонентами, включая открытие, редактирование и закрытие документов, изменение размеров окон. Можно также создавать надстроечные модули, интегрируя их в среду с использованием объектной модели VisualC++. ClassView Вкладка ClassView теперь позволяет работать с классами Java так же, как с классами C++.
Вы можете просматривать и редактировать интерфейсы СОМ-объектов, созданных на базе MFC или ALT, а также разбивать классы по папкам удобным для вас образом. Стало легче настраивать панели инструментов и меню в соответствии с вашими предпочтениями. В частности, вы можете выполнять следующие действия:
-
добавлять меню в панель инструментов;
-
добавлять и удалять команды меню и кнопки панели инструментов;
-
заменять кнопки панели инструментов соответствующими командами меню;
-
создавать копии команд меню или кнопок панелей инструментов на разных панелях, с тем чтобы облегчить доступ к ним в разных ситуациях;
-
создавать новые панели инструментов и меню;
-
настраивать внешний вид существующих панелей инструментов и меню;
-
назначать команды меню новым кнопкам панелей инструментов.
Файлы рабочего пространства теперь имеют расширение DSW(раньше использовалось расширение MDP). Создаваемые проекты записываются в файлы двух типов: внутренние (DSP) и внешние (МАК). Файлы с расширением DSP создаются при выборе нового проекта или при открытии файла проекта, созданного в ранней версии программы. Чтобы сохранить проект во внешнем файле с расширением МАК, используйте команду Export Makefile из меню Project. Проекты теперь могут содержать активные документы, например электронные таблицы или текстовые документы Word. Вы можете редактировать их, даже не покидая VisualStudio. Когда создается новое рабочее пространство, VisualC++ создает файл имя_рабочегo_npocmpaнcтвa.DSW. Эти файлы больше не содержат данных, специфичных для вашего компьютера. Предварительно скомпилированные файлы заголовков VisualC++ помещает описания типов данных, прототипы функций, внешние ссылки и объявления функций-членов в специальные файлы, называемые файлами заголовков. Эти файлы содержат важные определения, необходимые во многих местах программы. Части файлов заголовков обычно повторно компилируются при компиляции каждого из включающих их модулей. К сожалению, повторная компиляция значительно замедляет работу компилятора.
VisualC++ позволяет существенно ускорить этот процесс за счет возможности предварительной компиляции файлов заголовков. Хотя идея не нова, для ее реализации специалисты Microsoft использовали принципиально новый подход. Предварительной компиляции может подвергнуться только "стабильная" часть файла; оставшаяся же часть, которая впоследствии может модифицироваться, будет компилироваться вместе с приложением.
Это средство удобно применять, например, в том случае, когда в процессе разработки приложения приходится часто изменять программный код, сохраняя описание классов. Предварительная компиляция файлов заголовков приведет к значительному ускорению работы с программой и в тех случаях, когда заголовки заключают в себе больше программного кода, чем основной модуль.
Компилятор VisualC++ предполагает, что текущее состояние рабочей среды идентично тому, которое было при компиляции заголовков. В случае обнаружения каких-либо конфликтов будет выдано предупреждающее сообщение. Такие ситуации могут возникать при изменении модели использования памяти, значений предопределенных констант или опций отладки/компиляции.
В отличие от многих других компиляторов C++, VisualC++ не ограничивается предварительной компиляцией только файлов заголовков. Благодаря возможности проводить компиляцию до заданной точки программы вы можете предварительно скомпилировать даже какую-нибудь часть основного модуля. В целом, процедура предварительной компиляции используется для тех частей программного кода, которые вы считаете стабильными; таким образом значительно сокращается время компиляции частей программы, изменяемых в процессе работы над ней.
Приложения Windows просты в использовании, но создавать их довольно сложно. Программистам приходится изучать сотни различных API-функций. Чтобы облегчить их труд, специалисты Microsoft разработали библиотеку MicrosoftFoundationClasses— MFC . Используя готовые классы C++, можно гораздо быстрее и проще решать многие задачи. Библиотека MFC существенно облегчает программирование в среде Windows. Те, кто обладает достаточным опытом программирования на C++, могут дорабатывать классы или создавать новые, производные от существующих.
Классы библиотеки MFC используются как для управления объектами Windows, так и для решения определенных общесистемных задач. Например, в библиотеке имеются классы для управления файлами, строками, временем, обработкой исключений и другие.
По сути, в MFC представлены практически все функции WindowsAPI. В библиотеке имеются средства обработки сообщений, диагностики ошибок и другие средства, обычные для приложений Windows. MFC обладает следующими преимуществами.
-
Представленный набор функций и классов отличается логичностью и полнотой. Библиотека MFC открывает доступ ко всем часто используемым функциям WindowsAPI, включая функции управления окнами приложений, сообщениями, элементами управления, меню, диалоговыми окнами, объектами GDI (GraphicsDeviceInterface— интерфейс графических устройств), такими как шрифты, кисти, перья и растровые изображения, функции работы с документами и многое другое.
-
Функции MFC легко изучать. Специалисты Microsoft приложили все усилия для того, чтобы имена функций MFC и связанных с ними параметров были максимально близки к их эквивалентам из WindowsAPI. Благодаря этому программисты легко смогут разобраться в их назначении.
-
Программный код библиотеки достаточно эффективен. Скорость выполнения приложений, основанных на MFC , будет примерно такой же, как и скорость выполнения приложений, написанных на С с использованием стандартных функций WindowsAPI, а дополнительные затраты оперативной памяти будут весьма незначительными.
-
• MFC содержит средства автоматического управления сообщениями. Библиотека MFC устраняет необходимость в организации цикла обработки сообщений — распространенного источника ошибок в Windows-приложениях. В MFC предусмотрен автоматический контроль за появлением каждого сообщения. Вместо использования стандартного блока switch/case все сообщения Windows связываются с функциямичленами, выполняющими соответствующую обработку.
-
MFC позволяет организовать автоматический контроль за выполнением функций. Эта возможность реализуется за счет того, что вы можете записывать в отдельный файл информацию о различных объектах и контролировать значения переменных-членов объекта в удобном для понимания формате.
-
MFC имеет четкий механизм обработки исключительных ситуаций. Библиотека MFC была разработана таким образом, чтобы держать под контролем появление таких ситуаций. Это позволяет объектам MFC восстанавливать работу после появления ошибок типа "outofmemory" (нехватка памяти), неправильного выбора команд меню или проблем с загрузкой файлов либо ресурсов.
-
MFC обеспечивает динамическое определение типов объектов. Это чрезвычайно мощное программное средство, позволяющее отложить проверку типа динамически созданного объекта до момента выполнения программы. Благодаря этому вы можете свободно манипулировать объектами, не заботясь о предварительном описании типа данных. Поскольку информация о типе объекта возвращается во время выполнения программы, программист освобождается от целого этапа работы, связанного с типизацией объектов.
-
MFC может использоваться совместно с подпрограммами, написанными на языке С. Важной особенностью библиотеки MFC является то, что она может "сосуществовать" с приложениями, основанными на WindowsAPI. В одной и той же программе программист может использовать классы MFC и вызывать функции WindowsAPI. Такая прозрачность среды достигается за счет согласованности программных обозначений в обеих архитектурах. Другими словами, файлы заголовков, типы и глобальные константы MFC не конфликтуют с именами из WindowsAPI. Еще одним ключевым моментом, обеспечивающим такое взаимодействие, является согласованность механизмов управления памятью.
-
MFC может быть использована для создания программ, работающих в среде MSDOS. Библиотека MFC была создана специально для разработки приложений в среде Windows. В то же время многие классы предоставляют объекты, часто используемые для ввода/вывода файлов и манипулирования строковыми данными. Такие классы общего назначения могут применяться в приложениях как Windows, так и MS-DOS.
Макроподстановка функций Компилятор MicrosoftVisualC++ поддерживает возможность макроподстановки функций. Это означает, что вызов любой функции с любым набором инструкций может быть заменен непосредственной подстановкой тела функции. Многие компиляторы C++ разрешают производить макроподстановку только для функций, содержащих определенные операторы и выражения. Например, иногда оказывается невозможной макроподстановка функций, содержащих операторы switch, while и for. VisualC++ не накладывает ограничений на содержимое функций. Чтобы задать параметры макроподстановки, выберите в меню Project команду Settings, затем активизируйте вкладку C/C++ и, наконец, выберите элемент Optimizations из списка Category.
Компилятор MicrosoftVisualC++ предоставляет огромные возможности в плане оптимизации приложений, в результате чего вы можете получить выигрыш как в отношении размера программы, так и в отношении скорости ее выполнения, независимо от того, что представляет собой ваше приложение. Перечисленные ниже опции компиляции позволяют оптимизировать программный код, сокращая его размер, время выполнения и время компиляции. Чтобы получить к этим опциям доступ, нужно в меню Project выбрать команду Settings.
На вкладке General можно включить или отключить возможность использования библиотеки MFC (список MicrosoftFoundationClasses). Здесь также можно указать папки, в которые компилятор будет помещать промежуточные (поле Intermediatefiles) и выходные (поле Outputfiles) файлы.
Debug а вкладке Debug можно указать местонахождение исполняемого файла и рабочей папки, задать аргументы командной строки, а также путь и имя удаленного исполняемого файла на сетевом диске. Кроме того, в списке Category можно выбрать элемент AdditionalDLLs, предназначенный для задания дополнительных библиотек динамической компоновки (DLL).
Вкладка C/C++ содержитследующиекатегорииопций: General, C++ Language, Code Generation, Customize, Listing Files, Optimizations, Precompiled Headers и Preprocessor. В поле ProjectOptions отображается командная строка проекта.