Udostępnij za pośrednictwem


Integracja ze środowiskiem uruchomieniowym CLR (C++/CX)

Niektóre typy środowisko wykonawcze systemu Windows otrzymują specjalną obsługę w języku C++/CX oraz języki oparte na środowisku uruchomieniowym języka wspólnego (CLR). W tym artykule omówiono sposób mapowania kilku typów w jednym języku na inny język. Na przykład clR mapuje Windows.Foundation.IVector na System.Collections.IList, Windows.Foundation.IMap na System.Collections.IDictionary itd. Podobnie język C++/CX specjalnie mapuje typy, takie jak Platform::D elegate i Platform::String.

Mapowanie środowisko wykonawcze systemu Windows na C++/CX

Gdy język C++/CX odczytuje plik metadanych systemu Windows (winmd), kompilator automatycznie mapuje typowe przestrzenie nazw i typy środowisko wykonawcze systemu Windows do przestrzeni nazw I typów C++/CX. Na przykład typ UInt32 środowisko wykonawcze systemu Windows liczbowy jest automatycznie mapowany na default::uint32.

Język C++/CX mapuje kilka innych typów środowisko wykonawcze systemu Windows na przestrzeń nazw platformy. Na przykład uchwyt HSTRING systemu Windows::Foundation , który reprezentuje ciąg tekstowy Unicode tylko do odczytu, jest mapowany na klasę C++/CX Platform::String . Gdy operacja środowisko wykonawcze systemu Windows zwraca błąd HRESULT, jest mapowany na C++/CX Platform::Exception.

Język C++/CX mapuje również niektóre typy w środowisko wykonawcze systemu Windows przestrzeni nazw, aby zwiększyć funkcjonalność typu. W przypadku tych typów język C++/CX udostępnia konstruktory pomocnika i metody specyficzne dla języka C++ i nie są dostępne w standardowym pliku winmd typu.

Na poniższych listach przedstawiono struktury wartości, które obsługują nowe konstruktory i metody pomocnicze. Jeśli wcześniej napisano kod korzystający z list inicjowania struktury, zmień go, aby używał nowo dodanych konstruktorów.

Windows::Foundation

  • Punkt

  • Rect

  • Size

Windows::UI

  • Color

Windows::UI::Xaml

  • Cornerradius

  • Czas trwania

  • Gridlength

  • Grubość

Windows::UI::Xaml::Interop

  • TypeName

Windows::UI::Xaml::Media

  • Matryca

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

  • Keytime

  • Repeatbehavior

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

  • Matrix3d

Mapowanie środowiska CLR na C++/CX

Gdy kompilatory języka Microsoft C++ lub C# odczytują plik winmd, automatycznie mapują niektóre typy w pliku metadanych na odpowiednie typy C++/CX lub CLR. Na przykład w clR interfejs IVector<T jest mapowany na IList<T>>. Jednak w języku C++/CX interfejs IVector<T> nie jest mapowany na inny typ.

IReference<T> w środowisko wykonawcze systemu Windows mapuje na wartość Nullable<T> na platformie .NET.

Zobacz też

Współdziałanie z innymi językami