CLR-Integration (C++/CX)

Einige Windows-Runtime Typen erhalten spezielle Behandlung in C++/CX und den Sprachen, die auf der Common Language Runtime (CLR) basieren. Dieser Artikel behandelt, wie verschiedene Typen in einer Sprache einer anderen Sprache zugeordnet werden. Beispielsweise ordnet die CLR „Windows.Foundation.IVector“ zu „System.Collections.IList“, „Windows.Foundation.IMap“ zu „System.Collections.IDictionary“ zu usw. Ebenso werden speziell C++/CX-Typen wie Platform::D elegate und Platform::String zugeordnet.

Zuordnen des Windows-Runtime zu C++/CX

Wenn C++/CX eine Windows-Metadatendatei (WINMD) liest, wird vom Compiler automatisch gängige Windows-Runtime Namespaces und Typen zu C++/CX-Namespaces und -Typen zugeordnet. Beispielsweise wird der numerische Windows-Runtime Typ UInt32 automatisch zugeordnetdefault::uint32.

C++/CX ordnet mehrere andere Windows-Runtime Typen dem Platform-Namespace zu. Beispielsweise wird das Windows::Foundation HSTRING-Handle, das eine schreibgeschützte Unicode-Textzeichenfolge darstellt, der C++/CX-Klasse Platform::String zugeordnet. Wenn ein Windows-Runtime-Vorgang einen Fehler HRESULT zurückgibt, wird er einem C++/CX Platform::Exceptionzugeordnet.

C++/CX ordnet auch bestimmte Typen in Windows-Runtime Namespaces zu, um die Funktionalität des Typs zu verbessern. Für diese Typen stellt C++/CX Hilfskonstruktoren und -methoden bereit, die für C++ spezifisch sind und in der Winmd-Standarddatei des Typs nicht verfügbar sind.

Die folgende Liste enthält Wertstrukturen, die neue Konstruktoren und Hilfsmethoden unterstützen. Wenn Sie bisher Code erstellt haben, der mit Strukturinitialisierungslisten arbeitet, stellen Sie ihn auf die neu hinzugefügten Konstruktoren um.

Windows::Foundation

  • Point

  • Rect

  • Size

Windows::UI

  • Farbe

Windows::UI::Xaml

  • CornerRadius

  • Duration

  • GridLength

  • Stärke

Windows::UI::Xaml::Interop

  • TypeName

Windows::UI::Xaml::Media

  • Matrix

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

  • KeyTime

  • RepeatBehavior

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

  • Matrix3D

Zuordnen der CLR zu C++/CX

Wenn die Microsoft C++- oder C#-Compiler eine WINMD-Datei lesen, ordnen sie bestimmte Typen in der Metadatendatei automatisch den entsprechenden C++/CX- oder CLR-Typen zu. Beispielsweise wird in der CLR die IVector<T-Schnittstelle> IList<T> zugeordnet. In C++/CX ist die IVector<T-Schnittstelle> jedoch keinem anderen Typ zugeordnet.

IReference<T> im Windows-Runtime ist nullable<T> in .NET zugeordnet.

Siehe auch

Interoperabilität mit anderen Sprachen