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ż
Opinia
https://aka.ms/ContentUserFeedback.
Dostępne już wkrótce: W 2024 r. będziemy stopniowo wycofywać zgłoszenia z serwisu GitHub jako mechanizm przesyłania opinii na temat zawartości i zastępować go nowym systemem opinii. Aby uzyskać więcej informacji, sprawdź:Prześlij i wyświetl opinię dla