Jump to content

С++/ВинРТ

С++/ВинРТ
Оригинальный автор(ы) Кенни Керр [ 1 ]
Разработчик(и) Майкрософт
Первоначальный выпуск 23 июня 2015 г. (9 лет назад) ( 23.06.2015 ) [ 2 ]
Стабильная версия
2.0.240405.15 / 5 апреля 2024 г .; 4 месяца назад ( 05.04.2024 ) [ 3 ]
Репозиторий github /Microsoft /cppwinrt
Написано в С++
Операционная система Microsoft Windows
Предшественник С++/CX , WRL
Тип Инструменты разработки программного обеспечения
Лицензия МОЯ лицензия
Веб-сайт он же .РС /cppwinrt

C++/WinRT — это библиотека C++ для Microsoft платформы Windows Runtime , предназначенная для обеспечения доступа к современным API-интерфейсам Windows . C++/WinRT предоставляется как стандартная библиотека заголовочных файлов C++17, в отличие от C++/CX , которая является расширением C++ и требует последней версии Microsoft Visual C++ . [ 4 ]

C++/WinRT был представлен как часть Microsoft Windows SDK в версии 10.0.17134.0 (Windows 10, версия 1803) и является компонентом Windows App SDK (ранее известного как Project Reunion). Поддержка Microsoft Visual Studio для C++/WinRT обеспечивается официально поддерживаемым расширением. [ 5 ]

C++/WinRT был первоначально выпущен в 2015 году Кенни Керром, который вскоре после этого присоединился к Microsoft. [ 6 ] C++/WinRT теперь является рекомендуемой Microsoft заменой как библиотеки шаблонов C++ (WRL) среды выполнения Windows, так и C++/CX. [ 4 ]

Microsoft от Среда выполнения Windows основана на API-интерфейсах модели компонентных объектов (COM) и предназначена для доступа через языковые проекции . Языковая проекция скрывает детали COM и обеспечивает более естественный процесс программирования для данного языка. Для разработчиков C++ C++/WinRT — это официально поддерживаемая современная проекция языка C++.

Начиная с версии 10.0.17134.0 (Windows 10, версия 1803), Microsoft Windows SDK содержит стандартную библиотеку C++ на основе заголовочного файла для использования сторонних API-интерфейсов Windows (то есть среды выполнения Windows API-интерфейсов в пространствах имен Windows). [ 4 ] C++/WinRT также поставляется с cppwinrt.exe инструмент, который можно указать на файл метаданных среды выполнения Windows (.winmd), чтобы создать стандартную библиотеку C++ на основе файла заголовка, которая проецирует API, описанные в метаданных, для использования из кода C++/WinRT. Файлы метаданных среды выполнения Windows (.winmd) предоставляют канонический способ описания поверхности API среды выполнения Windows. Указывая на cppwinrt.exe инструмент в метаданных, пользователи могут создать библиотеку для использования с любым классом среды выполнения, реализованным во втором или стороннем компоненте среды выполнения Windows или реализованным в их собственном приложении.

С помощью C++/WinRT пользователи также могут реализовывать свои собственные классы среды выполнения, используя стандарт C++, не прибегая к программированию в стиле COM. Для класса среды выполнения типы могут быть описаны в файле MIDL (.idl), и из этого файла midl.exe и cppwinrt.exe инструменты генерируют файлы исходного кода шаблона реализации, готовые для добавления пользователями своей собственной реализации. В качестве альтернативы пользователи могут просто реализовать интерфейсы, производные от базового класса, который является частью библиотеки заголовков C++/WinRT. Эти методы используют любопытный повторяющийся шаблон шаблона для вызова функций посредством статической диспетчеризации. C++/WinRT использует множество современных функций языка ISO C++11 (и более поздних версий) для повышения производительности и производительности во время выполнения; эти функции были недоступны при предшественников C++/WinRT ( WRL и C++/CX разработке ).

Стандартные типы данных, алгоритмы и ключевые слова C++ используются с C++/WinRT; однако проекция также имеет свои собственные типы данных.

C++/WinRT создает двоичные файлы меньшего размера, чем другие языковые варианты среды выполнения Windows.

Проектирование и разработка C++/WinRT была начата в 2014 году тогдашним независимым разработчиком программного обеспечения Кенни Керром . В то время для разработчиков преобладающим способом вызова API-интерфейсов среды выполнения Windows с использованием C++ было использование проекции языка C++/CX . C++/CX добавляет к языку C++ нестандартные расширения, такие как ref new и ^ (шляпа), унаследованная от C++/CLI. Тогда еще не было полностью оценено, что развитие возможностей языка ISO C++ означало, что стало возможным разработать проекцию языка среды выполнения Windows для стандартного C++ без расширений. «В Microsoft есть много очень опытных разработчиков C++, которые десятилетиями работали с C++ и COM», — говорит Керр. «Я думаю, что потребовался кто-то, кто не осознавал, что это все равно невозможно просто попробовать и показать, что это работает». [ 6 ]

«У меня уже был некоторый опыт проектирования COM API в современном C++, поэтому я решил посмотреть, смогу ли я применить те же методы к среде выполнения Windows». Одной из первых проблем при разработке C++/WinRT было управление компромиссами, которые среда выполнения Windows делает для поддержки проекций для JavaScript и управляемых языков .NET «из коробки». Сложность в том, как общие коллекции работают в языковых проекциях, является еще одним примером этих проблем проектирования, равно как и поиск эффективного способа для стандартного C++ обрабатывать модель управления версиями интерфейса среды выполнения Windows. «Это действительно продвинуло мое понимание C++ в то время, и с тех пор подтолкнуло компилятор Microsoft Visual C++ более эффективно обрабатывать такие методы в этом масштабе».

  1. ^ Керр, Кенни; Макнеллис, Джеймс (2 ноября 2016 г.). «CppCon 2016: использование стандарта C++ для среды выполнения Windows» . Канал 9 . Майкрософт . Проверено 1 ноября 2019 г.
  2. ^ Керр, Кенни. «Современный C++ для среды выполнения Windows» . Гитхаб . Проверено 1 ноября 2019 г.
  3. ^ «Пакет C++/WinRT» . НуГет . Майкрософт . Проверено 15 июля 2024 г.
  4. ^ Перейти обратно: а б с Уайт, Стивен (17 апреля 2019 г.). «Введение в C++/WinRT» . Центр разработки Windows . Майкрософт . Проверено 10 июля 2019 г.
  5. ^ «Расширение C++/WinRT Visual Studio» . Торговая площадка Visual Studio . Майкрософт . Проверено 1 ноября 2019 г.
  6. ^ Перейти обратно: а б Десмонд, Майкл (январь 2017 г.). «Снаружи внутри: как Кенни Керр представил C++/WinRT в Microsoft» . Журнал MSDN . Майкрософт . Проверено 1 ноября 2019 г.
[ редактировать ]
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: d563219759368430e3f430743adb72be__1721066340
URL1:https://arc.ask3.ru/arc/aa/d5/be/d563219759368430e3f430743adb72be.html
Заголовок, (Title) документа по адресу, URL1:
C++/WinRT - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)