Обзор среды программирования. CLR-приложения

   
На этом шаге мы рассмотрим особенности CLR-приложений.

   
Программы в VC++ называются приложениями (очевидно, приложениями к среде программирования, IDE). Мы так и дальше станем их называть. Приложения строятся
средой в виде специальных конструкций - проектов, которые выглядят для пользователя как совокупность нескольких файлов.

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

   
Консольные (т. е. опорные, базовые) приложения - это приложения без графического интерфейса, которые взаимодействуют с пользователем
через специальную командную строку или (если они работают в рамках IDE) запускаются специальной командой из главного меню среды. Такие приложения создаются с помощью
специального шаблона, доступного из диалогового окна, открывающегося после выполнения команды File | New | Project (Файл | Создать | Проект).

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

   
Компиляция и сборка проекта осуществляются через команду Build (Построение) главного меню среды (структура главного меню меняется в зависимости от совершаемых действий: при
загрузке среды она одна (в ней нет опции Build (Построение)), а например, если мы создадим проект, такая опция появляется). После компиляции и сборки проект можно запустить на
выполнение. Запуск на выполнение осуществляется с помощью опции Debbug (Отладка) главного меню среды.

   
Изучение C/C++ мы станем осуществлять на примерах: будем создавать программы, разбирать, как они работают с параллельным изучением их структуры. Консольные приложения, которые
мы начнем создавать, имеют шаблон вида CLR Console Application. Последние два слова этого названия понятны - консольное приложение. А что означает аббревиатура CLR?

   
В Visual C++ 2008 для организации консольных приложений существовало два шаблона: один - тот, что мы рассматриваем, а другой - без аббревиатуры CLR. В новой редакции среды
разработки авторы тоже оставили два варианта консольного приложения, только разнесли их использование по разным диалоговым окнам: шаблон с CLR задан в папке CLR, а шаблон
для обычного консольного приложения задан в папке Win32.

   
Так что же это такое CLR? Это специальная среда, которая управляет исполнением программного кода, памятью, потоками данных и работой с удаленными компьютерами, при этом строго
обеспечивая безопасность и создавая надежность исполнения кода. CLR является добавкой-расширением C++, введенной фирмой Microsoft, начиная с версии VC++ 2005.

   
В версиях 2005, 2008 подключение к вашему проекту этой среды осуществлялось на этапе компиляции. Там для консольного приложения (по умолчанию) этот режим не поддерживался (т. е. консольное приложение
как бы оставалось в старой версии C++, в "родной" (native), как определили ее авторы добавки CLR).

   
В этой старой версии, когда вы в своей программе работали с некоторыми объектами, то должны сами заботиться об их размещении в памяти, выделяемой средой. Память для вашего приложения выделяется
в так называемой "куче": в ней вы размещаете свои объекты, там же сами освобождаете память, когда перестаете работать с объектом, иначе куча может переполниться и процесс выполнения приложения прервется.
Это так называемая неуправляемая куча. Указатели на участки памяти в такой куче обозначаются символом "*".

   
Другое дело, когда включается режим CLR. Такое приложение отличается от обычного тем, что его заготовка обеспечивает подключение к приложению специального системного пространства System,
содержащего объекты, размещение в памяти которых надо автоматически регулировать. Так вот: режим CLR работает уже с управляемой кучей памяти, в которой размещение объектов и ее
освобождение от них происходит под управлением среды. Такой сервис входит в язык Java, где не надо делить кучу на управляемую и неуправляемую. В этой среде употребляются так называемые
регулируемые указатели на объекты.

   
Регулируемый указатель - это тип указателя, который ссылается на объекты (адреса памяти, по которым можно обращаться к объектам), расположенные в общей регулируемой куче памяти,
предоставленной приложению в момент его исполнения. Для таких указателей принято специальное обозначение: вместо символа "*" применяется символ "^".

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

   
На следующем шаге мы рассмотрим создание консольного приложения.



Вы можете оставить комментарий, или Трекбэк с вашего сайта.

Оставить комментарий