Sdílet prostřednictvím


Integrace CLR (C++/CX)

Některé typy prostředí Windows Runtime přijímají speciální zpracování v jazyce C++/CX a jazyky založené na modulu CLR (Common Language Runtime). Tento článek popisuje, jak několik typů v jedné jazykové mapě na jiný jazyk. ClR například mapuje Windows.Foundation.IVector na System.Collections.IList, Windows.Foundation.IMap na System.Collections.IDictionary atd. Podobně C++/CX speciálně mapuje typy, jako jsou Platform::D elegate a Platform::String.

Mapování prostředí Windows Runtime na C++/CX

Když C++/CX přečte soubor metadat Windows (.winmd), kompilátor automaticky mapuje běžné prostředí Windows Runtime obory názvů a typy na obory názvů a typy C++/CX. Například číselný typ prostředí Windows Runtime UInt32 se automaticky mapuje na default::uint32.

C++/CX mapuje několik dalších typů prostředí Windows Runtime na obor názvů platformy. Například popisovač Windows::Foundation HSTRING, který představuje textový řetězec Unicode jen pro čtení, je mapován na třídu C++/CX Platform::String . Když operace prostředí Windows Runtime vrátí chybu HRESULT, je namapovaná na C++/CX Platform::Exception.

C++/CX také mapuje určité typy v prostředí Windows Runtime oborech názvů, aby se zlepšila funkčnost typu. Pro tyto typy poskytuje C++/CX pomocné konstruktory a metody specifické pro jazyk C++ a nejsou k dispozici ve standardním souboru .winmd daného typu.

Následující seznamy zobrazují struktury hodnot, které podporují nové konstruktory a pomocné metody. Pokud jste dříve napsali kód, který používá seznamy inicializace struktur, změňte ho tak, aby používal nově přidané konstruktory.

Windows::Foundation

  • Bod

  • Rect

  • Velikost

Windows::UI

  • Color

Windows::UI::Xaml

  • CornerRadius

  • Doba trvání

  • GridLength

  • Tloušťka

Windows::UI::Xaml::Interop

  • TypeName

Windows::UI::Xaml::Media

  • Matice

Windows::UI::Xaml::Media::Animation

  • KeyTime

  • RepeatBehavior

Windows::UI::Xaml::Media::Media3D

  • Matice 3D

Mapování CLR na C++/CX

Když kompilátory Microsoft C++ nebo C# čtou soubor .winmd, automaticky mapují určité typy v souboru metadat na příslušné typy C++/CX nebo CLR. Například v CLR je IVector<T> rozhraní mapováno na IList<T>. V jazyce C++/CX však rozhraní IVector<T> není mapováno na jiný typ.

IReference<T> v prostředí Windows Runtime mapuje na hodnotu Nullable<T> v .NET.

Viz také

Spolupráce s jinými jazyky