Freigeben über


Windows Runtime C++ Template Library (WRL)

Windows Runtime C++ Template Library (WRL) ist eine Vorlagenbibliothek, die eine Methode auf niedriger Ebene bereitstellt, Windows-Runtime Komponenten zu erstellen und zu verwenden.

Vorteile

WRL können Sie einfach das Implementieren und nutzt Komponenten (Component Object Model).Es stellt Haushaltungstechniken wie Verweiszählung, die Lebensdauer von Objekten und Testen von HRESULT von Werten zu verwalten, um zu bestimmen, ob ein Vorgang erfolgreich war oder fehlgeschlagen ist.Um WRL erfolgreich zu verwenden, müssen Sie diesen Regeln und Techniken sorgfältig befolgen.

Komponentenerweiterungen für Visual C++ (C++/CX) ist eine Methode, Sprache-basierte auf hoher Ebene, Windows-Runtime Komponenten zu verwenden.WRL vereinfachen und C++/CX das Schreiben von Code für Windows-Runtime, indem sie automatisch Haushaltungsaufgaben im Namen ausführen.

WRL und C++/CX bieten verschiedene Vorteile.Im Folgenden werden einige Gründe, die Sie WRL anstelle C++/CX verwendet werden:

  • WRL fügt wenig Abstraktion über der Windows-Runtime - ABI (Application Binary Interface) hinzu und gibt Ihnen die Möglichkeit, den zugrunde liegenden Code zu steuern, um Windows-Runtime API besser zu erstellen oder zu nutzen.

  • C++/CX stellt Werte COM HRESULT als Ausnahmen dar.Wenn Sie eine CodeBase geerbt verfügen, die COM oder eines verwendet, das nicht Ausnahmen verwendet, kann es sein, dass WRL eine natürlichere Methode ist, mit Windows-Runtime zu arbeiten, da Ausnahmen nicht verwenden müssen.

    HinweisHinweis

    WRL verwendet HRESULT-Werte und löst keine Ausnahmen aus.Außerdem die WRL Verwendungsintelligenten die und das RAII-Muster helfen, um sicherzustellen, dass die Objekte ordnungsgemäß gelöscht werden, wenn der Anwendungscode eine Ausnahme auslöst.Weitere Informationen zu intelligenten Zeiger und RAII, finden Sie unter Intelligente Zeiger modernes (C++) und Objekteigene Ressourcen (RAII).

  • Der Zweck und der Entwurf WRL wird durch die ATL (Active Template Library) auf, der einer Gruppe vorlagenbasierter C++-Klassen ist, die die Programmierung von COM-Objekten vereinfachen.Da WRL Standard-C++ verwendet, um Windows-Runtime zu umschließen, können Sie mit vielen vorhandenen COM-Komponenten leicht portieren und interagieren, die Windows-Runtime in ATL geschrieben werden.Wenn Sie bereits ATL kennen, kann es sein, dass WRL Programmierung einfacher ist.

Erste Schritte

Im Folgenden einige Ressourcen, die Ihnen helfen können, Funktion mit WRL sofort abzurufen.

WRL verglichen wurden zu ATL

WRL ähnelt der ATL (Active Template Library) da Sie sie verwenden können, um die kleine, schnellen COM-Objekte erstellen.WRL und ATL gibt auch Konzepte wie Definition von Objekten in Modulen, explizite Registrierung von Schnittstellen frei und öffnet Erstellung von Objekten, indem sie Factorys verwenden.Sie sich fühlten möglicherweise mit WRL gut, wenn Sie mit ATL vertraut sind.

WRL unterstützt die COM-Funktionalität, die für Windows Store-App erforderlich ist.Daher unterscheidet sich vom ATL, da sie direkte Unterstützung für COM-Funktionen wie auslassen:

  • Aggregation

  • vordefinierte Implementierungen

  • duale Schnittstellen (IDispatch)

  • Standardenumeratorschnittstellen

  • Verbindungspunkte

  • Tearoff-Schnittstellen

  • OLE-Einbettung

  • ActiveX-Steuerelemente

  • COM+

Konzepte

WRL stellt Typen bereit, die einige grundlegende Konzepte darstellen.In den folgenden Abschnitten werden diese Typen.

Hh438466.collapse_all(de-de,VS.110).gifComPtr

ComPtr ist ein Typ des intelligenten Zeigermechanismus,, der die - Schnittstelle darstellt, die mit dem Vorlagenparameter angegeben wird.Verwenden Sie ComPtr, um eine Variable zu deklarieren, die die Member eines Objekts verweisen kann, das von der - Schnittstelle abgeleitet wird.ComPtr verwaltet automatisch einen Verweiszähler für den zugrunde liegenden Schnittstellenzeiger bei und gibt die Schnittstelle frei, wenn der Verweiszähler auf Null wechselt.

Hh438466.collapse_all(de-de,VS.110).gifRuntimeClass

RuntimeClass instanziierte stellt eine Klasse dar, die einen Satz von angegebene Schnittstellen erbt.Ein - Objekt RuntimeClass kann eine Kombination der Unterstützung für eine oder mehrere Windows-Runtime COM-Schnittstellen oder einen schwachen Verweis auf eine Komponente bereitstellen.

Hh438466.collapse_all(de-de,VS.110).gifModul

Modul stellt eine Auflistung verknüpfte Objekte dar.Ein Module-Objekt verwaltet Class Factory, die Objekte erstellen, und Registrierung, die andere Anwendungen ermöglicht, ein Objekt zu verwenden.

Hh438466.collapse_all(de-de,VS.110).gifRückruf

Die Callback-Funktion erstellt ein - Objekt, dessen - Memberfunktion ein Ereignishandler ist (eine Rückrufmethode).Verwenden Sie die Callback-Funktion, um asynchrone Vorgänge zu schreiben.

Hh438466.collapse_all(de-de,VS.110).gifEventSource

EventSource wird verwendet, um Delegat ereignishandler zu verwalten.Verwenden Sie WRL, um einen Delegaten zu implementieren, und verwenden Sie EventSource, um Delegaten hinzuzufügen, zu entfernen und aufzurufen.

Hh438466.collapse_all(de-de,VS.110).gifAsyncBase

AsyncBase stellt virtuelle Methoden, die das asynchrone Programmiermodell Windows-Runtime darstellen.Überschreiben Sie die Member in dieser Klasse, um eine benutzerdefinierte Klasse erstellen, die den Status eines asynchronen Operation starten, beenden oder überprüfen kann.

Hh438466.collapse_all(de-de,VS.110).gifFtmBase

FtmBase stellt ein Free-Threaded Marshaller-Objekt dar.FtmBase stellt eine globale Schnittstellentabelle (GIT), und hilft Ihnen beim Verwalten Marshalling und Proxyobjekte.

Hh438466.collapse_all(de-de,VS.110).gifWeakRef

WeakRef ist ein Typ des intelligenten Zeigermechanismus darstellt, der einen schwachen Verweis zugegriffen werden kann, der verweist auf ein Objekt, das nicht möglicherweise oder möglicherweise.Ein - Objekt WeakRef kann nur von Windows-Runtime und nicht durch klassisches COM verwendet werden.

Ein - Objekt WeakRef stellt in der Regel ein Objekt dar, dessen Vorhandensein durch ein externer Thread oder eine Anwendung gesteuert wird.Beispielsweise kann ein WeakRef-Objekt ein Dateiobjekt verweisen.Wenn die Datei geöffnet ist, ist WeakRef gültig und die referenzierte Datei kann.jedoch, wenn die Datei geschlossen wird, ist WeakRef ungültig und die Datei ist nicht möglich.

Verwandte Themen

Projektvorlage für WRL-Klassenbibliothek

Beschreibt, wie auf die WRL-Klassenbibliotheksprojektvorlage zugreift.Diese Vorlage ermöglicht, die Aufgabe der Anwendung von Visual Studio zu vereinfachen, um Windows-Runtime Komponenten zu erstellen.

Schlüssel-WRL-APIs nach Kategorie

Hebt die primären WRL-Typen, Funktionen und Makros hervor.

WRL-Referenz

Enthält Referenzinformationen für WRL.

Kurzübersicht (Windows Runtime und Visual C++)

Beschreibt kurz die C++/CX-Funktionen, die Windows-Runtime unterstützen.

Verwenden von Windows Runtime-Komponenten in Visual C++

Zeigt, wie C++/CX verwendet, um eine grundlegende Windows-Runtime Komponente zu erstellen.