Краткий справочник (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 . |