Windows Runtime (WinRT)-taalprojecties

Windows Runtime (WinRT) is een taalneutrale toepassingsarchitectuur voor het bouwen van Windows API's en onderdelen. In een taalprojectie worden WinRT-API's weergegeven op basis van de conventies van een specifieke programmeertaal, zodat uw C#- of C++-code deze kan aanroepen zoals andere API's in uw taal.

Als u begrijpt hoe projecties werken, kunt u bepalen of u WinRT-API's in uw app wilt gebruiken of uw eigen herbruikbare WinRT-onderdelen wilt ontwerpen. In dit artikel wordt uitgelegd hoe winRT-metagegevens worden toegewezen aan C# en C++, welke projecties Microsoft ondersteunt en wanneer u de projectiedocumentatie nodig hebt.

Hoe taalprojecties werken

Windows metagegevensbestanden.winmd definiƫren WinRT-API's. Een taalprojectie leest die metagegevens en toont de API's volgens de conventies van een specifieke programmeertaal. Wanneer u een project maakt op basis van een standaard-Windows App SDK- of WinUI-sjabloon, configureert de sjabloon de taalprojectie al en kan uw C# of C++-code WinRT-API's rechtstreeks aanroepen zonder te werken met de onderliggende metagegevens of de binaire interface van de toepassing (ABI).

Ondersteunde taalprojecties

Microsoft ondersteunt C# en C++-taalprojecties voor Windows App SDK- en WinUI-apps. Communityprojecten bieden projecties voor andere talen, zoals Rust, maar Microsoft ondersteunt ze niet officieel.

Projectie Language Wat het biedt
C++/WinRT C++17 of hoger Een standaard C++-taalprojectie voor het gebruiken en ontwerpen van WinRT-API's en onderdelen.
C#/WinRT C# (.NET) Een .NET taalprojectie voor het gebruiken van WinRT-API's en het ontwerpen van WinRT-onderdelen.

Wanneer gebruikt u de documentatie voor taalprojectie

Voor de meeste app-ontwikkeling kunt u projected WinRT-API's gebruiken, zoals andere API's in uw gekozen taal. Gebruik de projectiedocumentatie wanneer u:

  • Een Windows Runtime-onderdeel maken dat door andere apps of talen wordt gebruikt.
  • Distribueer een bibliotheek als een NuGet-pakket dat WinRT-API's verpakt.
  • Werk met COM- of ABI-interfaces op laag niveau vanuit C++-code.
  • Problemen met buildfouten oplossen met betrekking tot gegenereerde interoperabiliteitscode of .winmd -bestanden.