Windows-Runtime (WinRT)-Sprachprojektionen

Windows-Runtime (WinRT) ist eine sprachneutrale Anwendungsarchitektur zum Erstellen Windows APIs und Komponenten. Eine Sprachprojektion macht WinRT-APIs gemäß den Konventionen einer bestimmten Programmiersprache verfügbar, sodass Ihr C#- oder C++-Code sie wie andere APIs in Ihrer Sprache aufrufen kann.

Wenn Sie wissen, wie Projektionen funktionieren, können Sie entscheiden, ob Sie WinRT-APIs in Ihrer App nutzen oder eigene wiederverwendbare WinRT-Komponenten erstellen möchten. In diesem Artikel wird erläutert, wie eine Sprachprojektion WinRT-Metadaten C# und C++ zuordnet, welche Projektionen Microsoft unterstützen und wann Sie die Projektionsdokumentation benötigen.

Funktionsweise von Sprachprojektionen

Windows Metadatendateien (.winmd) definieren WinRT-APIs. Eine Sprachprojektion liest diese Metadaten und macht die APIs gemäß den Konventionen einer bestimmten Programmiersprache verfügbar. Wenn Sie ein Projekt aus einer Standard-Windows App SDK- oder WinUI-Vorlage erstellen, konfiguriert die Vorlage bereits die Sprachprojektion, und Ihr C#- oder C++-Code kann WinRT-APIs direkt aufrufen, ohne mit den zugrunde liegenden Metadaten oder der Anwendungs-Binärschnittstelle (Application Binary Interface, ABI) zu arbeiten.

Unterstützte Sprachprojektionen

Microsoft unterstützt C#- und C++-Sprachprojektionen für Windows App SDK- und WinUI-Apps. Communityprojekte stellen Projektionen für andere Sprachen wie Rust bereit, aber Microsoft unterstützt sie nicht offiziell.

Projection Language Was es bietet
C++/WinRT C++17 oder höher Eine C++-Standardsprachenprojektion zum Verwenden und Erstellen von WinRT-APIs und -Komponenten.
C#/WinRT C# (.NET) Eine .NET Sprachprojektion für die Verwendung von WinRT-APIs und das Erstellen von WinRT-Komponenten.

Wann die Dokumentation zur Sprachprojektion verwendet werden sollte

Für die meisten Arten der App-Entwicklung können Sie projizierte WinRT-APIs wie andere APIs in der von Ihnen gewählten Sprache verwenden. Verwenden Sie die Projektionsdokumentation, wenn Sie:

  • Erstellen Sie eine Windows-Runtime Komponente, die andere Apps oder Sprachen nutzen.
  • Verteilen Sie eine Bibliothek als NuGet-Paket, das WinRT-APIs umschließt.
  • Arbeiten Sie mit COM- oder ABI-Schnittstellen auf niedriger Ebene aus C++-Code.
  • Beheben von Buildfehlern im Zusammenhang mit generiertem Interopcode oder .winmd-Dateien.