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.
Hinweis 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.
Die Windows Runtime-Bibliothek (WRL)
In diesem Channel 9-Video erfahren Sie mehr darüber, wie die WRL können Sie Windows Store-App schreiben und wie Windows-Runtime Komponenten erstellt und nutzt.Gewusst wie: Aktivieren und Verwenden einer Windows-Runtime-Komponente mit WRL
Zeigt, wie WRL verwendet, um Windows-Runtime zu initialisieren und eine Windows-Runtime Komponente zu aktivieren und zu verwenden.Gewusst wie: Abschließen asynchroner Vorgänge mit WRL
Zeigt, wie WRL verwendet, um asynchrone Vorgänge zu starten und Arbeit ausführen wenn die vollständig Vorgänge.Gewusst wie: Behandeln von Ereignissen mit WRL
Zeigt, wie WRL verwendet, um zu abonnieren und Ereignisse der Windows-Runtime zu behandeln Objekts.Exemplarische Vorgehensweise: Erstellen einer Basiskomponente für Windows-Runtime mit WRL
Zeigt, wie WRL verwendet, um eine grundlegende Windows-Runtime Komponente zu erstellen, die zwei Zahlen hinzu.Veranschaulicht ebenfalls, wie Ereignisse auslöst und die Komponente von einer Windows Store-App verwendet, die JavaScript verwendet.Exemplarische Vorgehensweise: Erstellen einer Windows Store-App mithilfe von WRL und Media Foundation
Erfahren Sie, wie Sie eine Windows Store-App erstellt, die verwendet Microsoft Foundation Media.Gewusst wie: Erstellen einer klassischen COM-Komponente mit WRL
Zeigt, wie WRL verwendet, um eine grundlegende COM-Komponente und eine einfache Methode erstellen, die von einer COM-Komponente Desktop-App zu registrieren und zu nutzen.Gewusst wie: Direktes Instanziieren von WRL-Komponenten
Erfahren Sie, wie Sie die Microsoft::WRL::Make und Microsoft::WRL::Details::MakeAndInitialize-Funktionen verwendet, um eine Komponente aus dem Modul zu instanziieren, das sie definiert.Exemplarische Vorgehensweise: Verbinden von Verwendungsaufgaben und XML-HTTP-Anforderung (IXHR2)
Zeigt, wie die IXMLHTTPRequest2 und IXMLHTTPRequest2Callback-Schnittstellen zusammen mit Aufgaben, HTTP-GET- und POST-Anforderungen zu einem Webdienst in einer Windows Store-App zu senden verwendet.Bing Maps-Reise-Optimiererbeispiel
Verwendet die HttpRequest-Klasse, die in Exemplarische Vorgehensweise: Verbinden von Verwendungsaufgaben und XML-HTTP-Anforderung (IXHR2) im Kontext einer vollständigen Windows Store-App definiert ist.Hybridservererstellungsbeispiel der App DLL
Veranschaulicht, wie WRL verwendet, Schnittstellen und zu arbeiten mit Eigenschaften, Methoden und Ereignisse zu deklarieren und zu implementieren.Beispiel für DirectX-Marmorlabyrinths Spiel
Veranschaulicht, wie WRL verwendet, um die Lebensdauer von COM-Komponenten wie DirectX und Media Foundation im Kontext eines vollständigen 3D-Spiels zu verwalten.Senden von Toastbenachrichtigungen vom Desktop-App-Beispiel
Veranschaulicht, wie WRL verwendet, um mit Toastbenachrichtigungen aus einer Desktop-App zu arbeiten.
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.
ComPtr
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.
RuntimeClass
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.
Modul
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.
Rü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.
EventSource
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.
AsyncBase
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.
FtmBase
FtmBase stellt ein Free-Threaded Marshaller-Objekt dar.FtmBase stellt eine globale Schnittstellentabelle (GIT), und hilft Ihnen beim Verwalten Marshalling und Proxyobjekte.
WeakRef
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
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. |
|
Hebt die primären WRL-Typen, Funktionen und Makros hervor. |
|
Enthält Referenzinformationen für WRL. |
|
Beschreibt kurz die C++/CX-Funktionen, die Windows-Runtime unterstützen. |
|
Zeigt, wie C++/CX verwendet, um eine grundlegende Windows-Runtime Komponente zu erstellen. |