projekce jazyka prostředí Windows Runtime (WinRT)

prostředí Windows Runtime (WinRT) je jazykově neutrální aplikační architektura pro vytváření rozhraní API a komponent Windows. Projekce jazyka zveřejňuje rozhraní API WinRT podle konvencí konkrétního programovacího jazyka, takže kód jazyka C# nebo C++ je může volat jako jiná rozhraní API ve vašem jazyce.

Když porozumíte tomu, jak projekce fungují, můžete se rozhodnout, jestli v aplikaci využívat rozhraní API WinRT, nebo vytvářet vlastní opakovaně použitelné komponenty WinRT. Tento článek vysvětluje, jak projekce jazyka mapují metadata WinRT na C# a C++, které projekce Microsoft podporují a kdy potřebujete dokumentaci k projekci.

Jak fungují projekce jazyka

soubory Windows Metadata (.winmd) definují rozhraní API WinRT. Jazyková projekce čte tato metadata a zpřístupňuje rozhraní API podle konvencí konkrétního programovacího jazyka. Když vytvoříte projekt ze standardní Windows App SDK nebo šablony WinUI, šablona už nakonfiguruje projekci jazyka a kód jazyka C# nebo C++ může volat rozhraní API WinRT přímo bez práce s podkladovými metadaty nebo binárním rozhraním aplikace (ABI).

Podporované jazykové projekce

Microsoft podporuje projekce jazyka C# a C++ pro aplikace Windows App SDK a WinUI. Komunitní projekty poskytují projekce pro jiné jazyky, jako je Rust, ale Microsoft je oficiálně nepodporuje.

Projection Jazyk Co poskytuje
C++/WinRT C++17 nebo novější Standardní projekce jazyka C++ pro využívání a vytváření rozhraní API a komponent WinRT.
C#/WinRT C# (.NET) Projekce jazyka .NET pro využívání rozhraní API WinRT a vytváření komponent WinRT.

Kdy použít dokumentaci k projekci jazyka

Pro většinu vývoje aplikací můžete použít projektovaná rozhraní API WinRT, jako jsou jiná rozhraní API ve zvoleném jazyce. Dokumentaci k projekci použijte v následujících případech:

  • Vytvořte komponentu prostředí Windows Runtime, kterou využívají jiné aplikace nebo jazyky.
  • Distribuujte knihovnu jako balíček NuGet, který zabalí rozhraní API WinRT.
  • Pracujte s nízkoúrovňovými rozhraními COM nebo ABI v kódu C++.
  • Řešte chyby sestavení související s vygenerovaným propojovacím kódem nebo .winmd soubory.