Учебник по Visual C++ .Net


Управляемые расширения для C++


Так называется множество расширений языка C++. Они были введены с целью помочь разрабатывать приложения, ориентированные на платформу Microsoft.Net. Традиционный (unmanaged) код C++ и управляемый код (managed) могут одновременно присутствовать в одном приложении, не мешая друг другу. Для того чтобы получить быстрое представление об этой технологии, рассмотрим пример. Вы начинаете со стартовой заготовки Visual C++ Projects, скроенной по шаблону Managed C++ Application, задав имя проекту (например, Man), и получаете два СРР-

файла: Мап.срр и Assemblylnfo.cpp. Первый файл представляет собой заготовку вашей программы консольного типа:

//=== Импортирует метаданные в программу, использующую

//=== Managed Extensions for C++

#using <mscorlib.dll>

// Стало доступным пространство имен System, которое

// содержит описания фундаментальных классов, атрибутов,

// интерфейсов и событий

using namespace System;

int main (void)

{

// Console — это класс, который обеспечивает стандартные

// операции ввода-вывода в окно консольного типа

Console::WriteLine("Hello World");

return 0;

}

Второй файл содержит атрибуты настройки сборочной информации (assembly metadata). Коды этого файла нет смысла рассматривать, так как они носят сугубо служебный характер. Вы можете запустить программу на выполнение (Ctrl+F5) и увидеть традиционное приветствие в окне консольного типа. Теперь покажем, как можно создать управляемый динамический массив. Вставьте директиву finclude <stdlib.h> и отредактируйте код главной функции:

void main()

{

// Описатель _gс декларирует garbage-collected object,

// то есть объект, за памятью которого будет следить CLR

int managed _gc[] = new int _gc[rand()%100 + 1);

//==== Обычный динамический массив

int *unmanaged = new int[rand()%100 + 1];

//==== Мы можем задавать вопросы объекту managed

Console::WriteLine (managed->Count);

Console::WriteLine (managed->Rank);

//==== Мы не можем задавать вопросы объекту unmanaged




Начало  Назад  Вперед



Книжный магазин