Поделиться через


Краткий справочник (C++/CX)

Среда выполнения Windows поддерживает приложения универсальная платформа Windows (UWP). Эти приложения выполняются только в надежной операционной среде, используют авторизованные функции, типы данных и устройства, а также распределяются через Microsoft Store. C++/CX упрощает написание приложений для среда выполнения Windows. Эта статья является кратким справочником; Более полную документацию см. в разделе "Тип системы".

При сборке в командной строке используйте /ZW параметр компилятора для создания приложения UWP или компонента среда выполнения Windows. Чтобы получить доступ к объявлениям среда выполнения Windows, определенным в файлах метаданных среда выполнения Windows (WINMD), укажите #using директиву или /FU параметр компилятора. При создании проекта для приложения UWP Visual Studio по умолчанию задает эти параметры и добавляет ссылки на все библиотеки среда выполнения Windows.

Краткий справочник

Концепция Стандартный C++ C++/CX Замечания
Фундаментальные типы Базовые типы C++. Основные типы C++/CX, реализующие основные типы, определенные в среда выполнения Windows. Пространство default имен содержит встроенные типы C++/CX. Компилятор неявно сопоставляет базовые типы C++/CX со стандартными типами C++ .

Семейство Platform пространств имен содержит типы, реализующие базовые среда выполнения Windows типы.
bool bool 8-битовое логическое значение.
wchar_t, char16_t char16 16-битовое нечисловое значение, представляющее кодовую точку Юникода (UTF-16).
short

unsigned short
int16

uint16
16-разрядное целое число со знаком.

16-разрядное целое число без знака.
int

unsigned int
int

uint32
32-разрядное целое число со знаком.

32-разрядное целое число без знака.
long long -или- __int64

unsigned long long
int64

uint64
64-разрядное целое число со знаком.

64-разрядное целое число без знака.
float, double float32, float64 32-битовое число с плавающей запятой или 64-битовое число IEEE 754 с плавающей запятой.
enum enum class

–или–

enum struct
32-битовое перечисление.
(Не применяется) Platform::Guid 128-битовое нечисловое значение (GUID) в пространстве имен Platform .
std::time_get Windows::Foundation::DateTime Структура даты и времени.
(Не применяется) Windows::Foundation::TimeSpan Структура интервала времени.
(Не применяется) Platform::Object^ Ссылочный базовый объект в представлении C++ системы типов среда выполнения Windows.
std::wstring

L"..."
Platform::String^ Platform::String^ — неизменяемая последовательность символов Юникода с подсчетом ссылок, представляющая текст.
Указатель Указатель на объект (*):

std::shared_ptr
Дескриптор объекта (^, произносится "крышка"):

T^ identifier
Все классы среда выполнения Windows объявляются с помощью модификатора дескриптора к объекту. Доступ к членам объекта осуществляется с помощью оператора доступа к членам класса в виде стрелки (->).

Модификатор шляпы означает "указатель на объект среда выполнения Windows, который автоматически ссылается на счетчик". Более точно дескриптор —объект объявляет, что компилятор должен вставить код для автоматического управления счетчиком ссылок объекта и удалить объект, если число ссылок переходит к нулю.
Справочные материалы Ссылка на объект (&):

T& identifier
Отслеживаемая ссылка (%):

T% identifier
С помощью модификатора ссылок отслеживания можно объявить только среда выполнения Windows типы. Доступ к членам объекта осуществляется с помощью оператора доступа к членам класса в виде точки (.).

Ссылка на отслеживание означает "ссылка на объект среда выполнения Windows, который автоматически ссылается". Точнее, ссылка на отслеживание объявляет, что компилятор должен вставить код для автоматического управления счетчиком ссылок объекта. Код удаляет объект, если число ссылок переходит к нулю.
объявление динамического типа new ref new Выделяет объект среда выполнения Windows, а затем возвращает дескриптор в этот объект.
управление временем жизни объекта delete identifier

delete[] identifier
(Вызывает деструктор.) Время жизни определяется подсчетом ссылок. Вызов delete деструктора, но сам не освобождает память.
Объявление массива T identifier[]

std::array identifier
Array<T^>^ identifier( size )

-или-

WriteOnlyArray<T^> identifier( size )
Объявляет одномерный модификируемый или доступный только для записи массив типа T^. Сам массив является объектом с подсчетом ссылок, который должен быть объявлен с модификатором дескриптора объекта.

(Объявления массива используют класс заголовка шаблона, который находится в пространстве имен Platform .)
объявление класса class identifier {}

struct identifier {}
ref class identifier {}

ref struct identifier {}
Объявляет класс среды выполнения, имеющий специальные возможности по умолчанию private .

Объявляет класс среды выполнения, имеющий специальные возможности по умолчанию public .
объявление структуры struct identifier {}

(т.е. простой структуры данных (POD))
value class identifier {}

value struct identifier {}
Объявляет структуру POD, которая имеет специальные возможности по умолчанию private .

Можно value class представить в метаданных Windows, но стандартная C++ class не может быть.

Объявляет структуру POD, которая имеет специальные возможности по умолчанию public .

Можно value struct представить в метаданных Windows, но стандартная C++ struct не может быть.
объявление интерфейса абстрактный класс, который содержит только чистые виртуальные функции. interface class identifier {}

interface struct identifier {}
Объявляет интерфейс со специальными возможностями по умолчанию private .

Объявляет интерфейс со специальными возможностями по умолчанию public .
Делегирование std::function public delegate return-type delegate-type-identifier ([ параметры ] ); Объявляет объект, который может вызываться, как вызов функции.
Мероприятие (Не применяется) event delegate-type-identifier event-identifier;

delegate-type-identifier delegate-identifier = ref new delegate-type-identifier( this[, параметры] );

event-identifier += *delegate-identifier;

–или–

EventRegistrationToken token-identifier = object.event-identifier += delegate-identifier;

–или–

auto token-identifier = object.event-identifier::add( delegate-identifier );

object.event-identifier -= token-identifier;

–или–

object.event-identifier::remove( token-identifier );
event Объявляет объект, который хранит коллекцию обработчиков событий (делегатов), вызываемых при возникновении события.

Создает обработчик событий.

Добавляет обработчик событий.

Добавление обработчика событий возвращает маркер события (token-identifier). Если планируется явно удалить обработчик событий, следует сохранить токен события для последующего использования.

Удаляет обработчик событий.

Чтобы удалить обработчик событий, необходимо указать токен события, который был сохранен при добавлении обработчика событий.
Свойство (Не применяется) property T identifier;

property T identifier[ index ];

property T default[ index ];
Объявляет, что доступ к функции-члену класса или объекта осуществляется с помощью того же синтаксиса, который используется для доступа к элементу данных или индексированному элементу массива.

Объявляет свойство функции-члена класса или объекта.

Объявляет индексированное свойство функции-члена объекта.

Объявляет индексированное свойство функции-члена класса.
Параметризованный тип шаблоны generic <typename T> interface class identifier {}

generic <typename T > delegate[return-type] delegate-identifier() {}
Объявляет параметризованный класс интерфейса.

Объявляет параметризованный делегат.
Типы значений, допускающие значение NULL std::optional<T> Platform::IBox <T> Позволяет переменным скалярных типов и value структур иметь значение nullptr.

См. также

Справочник по языку C++/CX