Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
среда выполнения Windows (WinRT) — это нейтральная на языке архитектура приложений для создания WINDOWS API и компонентов. Проекция языка предоставляет API WinRT в соответствии с соглашениями определенного языка программирования, поэтому код C# или C++ может вызывать их, как и другие API на вашем языке.
Понимание работы проекций помогает решить, следует ли использовать API WinRT в приложении или создавать собственные повторно используемые компоненты WinRT. В этой статье объясняется, как проекция языка сопоставляет метаданные WinRT с C# и C++, которые проекции Microsoft поддерживаются и когда вам нужна документация по проекции.
Как работают проекции языка
Windows файлы метаданных (.winmd) определяют API WinRT. Проекция языка считывает метаданные и предоставляет API в соответствии с соглашениями определенного языка программирования. При создании проекта из стандартного шаблона Windows App SDK или WinUI шаблон уже настраивает проекцию языка, а код C# или C++ может вызывать API WinRT напрямую без работы с базовыми метаданными или двоичным интерфейсом приложения (ABI).
Поддерживаемые языковые проекции
Microsoft поддерживает проекции языка C# и C++ для приложений Windows App SDK и WinUI. Проекты сообщества предоставляют проекции для других языков, таких как Rust, но Microsoft официально не поддерживает их.
| Projection | Language | Что он предоставляет |
|---|---|---|
| C++ (WinRT) | C++17 или более поздней версии | Стандартная проекция языка C++ для использования и разработки API и компонентов WinRT. |
| C#/WinRT | C# (.NET) | Проекция .NET языка для использования API WinRT и разработки компонентов WinRT. |
Когда использовать документацию по языковым проекциям
Для большинства разработки приложений можно использовать проецируемые API WinRT, такие как другие API на выбранном языке. Используйте документацию по проекции, если:
- Создайте компонент среда выполнения Windows, который используют другие приложения или языки.
- Распространение библиотеки в виде пакета NuGet, который упаковывает API WinRT.
- Работа с низкоуровневыми интерфейсами COM или ABI из кода C++.
-
Устраните ошибки сборки, связанные со сгенерированным кодом взаимодействия или файлами
.winmd.
Связанные материалы
Windows developer