Biblioteka szablonów języka C++ środowiska wykonawczego systemu Windows (WRL)

Biblioteka szablonów języka C++ (WRL) środowisko wykonawcze systemu Windows to biblioteka szablonów, która zapewnia niski poziom tworzenia i używania składników środowisko wykonawcze systemu Windows.

Uwaga

Lista WRL jest teraz zastępowana przez język C++/WinRT, standardową projekcję języka C++17 dla interfejsów API środowisko wykonawcze systemu Windows. Język C++/WinRT jest dostępny w zestawie Windows SDK w wersji 1803 (10.0.17134.0). Język C++/WinRT jest implementowany w całości w plikach nagłówkowych i zaprojektowany w celu zapewnienia najwyższej klasy dostępu do nowoczesnego interfejsu API systemu Windows.

Za pomocą języka C++/WinRT można używać i tworzyć interfejsy API środowisko wykonawcze systemu Windows przy użyciu dowolnego kompilatora C++17 zgodnego ze standardami. Język C++/WinRT zwykle działa lepiej i generuje mniejsze pliki binarne niż jakakolwiek inna opcja języka dla środowisko wykonawcze systemu Windows. Będziemy nadal obsługiwać języki C++/CX i WRL, ale zdecydowanie zalecamy, aby nowe aplikacje używały języka C++/WinRT. Aby uzyskać więcej informacji, zobacz C++/WinRT.

Świadczenia

Biblioteka szablonów języka C++ środowisko wykonawcze systemu Windows umożliwia łatwiejsze implementowanie składników modelu obiektów składników (COM) i korzystanie z nich. Udostępnia techniki przechowywania, takie jak zliczanie odwołań w celu zarządzania okresem istnienia obiektów i testowania wartości HRESULT w celu określenia, czy operacja zakończyła się powodzeniem, czy niepowodzeniem. Aby pomyślnie użyć biblioteki szablonów języka C++ środowisko wykonawcze systemu Windows, należy dokładnie postępować zgodnie z tymi regułami i technikami.

Język C++/CX to ogólny, oparty na języku sposób używania środowisko wykonawcze systemu Windows składników. Zarówno biblioteka szablonów języka C++ środowisko wykonawcze systemu Windows, jak i C++/CX upraszczają pisanie kodu dla środowisko wykonawcze systemu Windows przez automatyczne wykonywanie zadań utrzymania domu w Twoim imieniu.

Biblioteka szablonów języka C++ środowisko wykonawcze systemu Windows i C++/CX zapewniają różne korzyści. Oto kilka powodów, dla których warto użyć biblioteki szablonów języka C++ środowisko wykonawcze systemu Windows zamiast języka C++/CX:

  • środowisko wykonawcze systemu Windows biblioteka szablonów języka C++ dodaje niewielką abstrakcję w interfejsie binarnym aplikacji środowisko wykonawcze systemu Windows (ABI), umożliwiając kontrolowanie bazowego kodu w celu lepszego tworzenia lub korzystania z niego środowisko wykonawcze systemu Windows interfejsów API.

  • C++/CX reprezentuje wartości COM HRESULT jako wyjątki. Jeśli dziedziczysz bazę kodu korzystającą z modelu COM lub ta, która nie używa wyjątków, może się okazać, że biblioteka szablonów języka C++ środowisko wykonawcze systemu Windows jest bardziej naturalnym sposobem pracy z środowisko wykonawcze systemu Windows, ponieważ nie trzeba używać wyjątków.

    Uwaga

    Biblioteka szablonów języka C++ środowisko wykonawcze systemu Windows używa wartości HRESULT i nie zgłasza wyjątków. Ponadto biblioteka szablonów języka środowisko wykonawcze systemu Windows C++ używa inteligentnych wskaźników i wzorca RAII, aby zagwarantować, że obiekty zostaną prawidłowo zniszczone, gdy kod aplikacji zgłosi wyjątek. Aby uzyskać więcej informacji na temat inteligentnych wskaźników i RAII, zobacz Inteligentne wskaźniki i obiekty własne zasoby (RAII).

  • Przeznaczenie i projektowanie biblioteki szablonów języka środowisko wykonawcze systemu Windows C++ jest inspirowane biblioteką Active Template Library (ATL), która jest zestawem klas C++ opartych na szablonach, które upraszczają programowanie obiektów COM. Ponieważ biblioteka szablonów języka C++ środowisko wykonawcze systemu Windows używa standardowego języka C++ do zawijania środowisko wykonawcze systemu Windows, można łatwiej portować i korzystać z wielu istniejących składników COM napisanych w atl do środowisko wykonawcze systemu Windows. Jeśli znasz już bibliotekę ATL, możesz stwierdzić, że programowanie biblioteki szablonów języka C++ środowisko wykonawcze systemu Windows jest łatwiejsze.

Wprowadzenie

Oto kilka zasobów, które mogą pomóc w pracy z biblioteką szablonów języka C++ środowisko wykonawcze systemu Windows od razu.

Instrukcje: aktywowanie i używanie składnika środowisko wykonawcze systemu Windows
Pokazuje, jak za pomocą biblioteki szablonów języka C++ środowisko wykonawcze systemu Windows zainicjować środowisko wykonawcze systemu Windows i aktywować i używać składnika środowisko wykonawcze systemu Windows.

Instrukcje: wykonywanie operacji asynchronicznych
Pokazuje, jak używać biblioteki szablonów środowisko wykonawcze systemu Windows C++ do uruchamiania operacji asynchronicznych i wykonywania pracy po zakończeniu operacji.

Instrukcje: obsługa zdarzeń
Pokazuje, jak za pomocą biblioteki szablonów języka C++ środowisko wykonawcze systemu Windows subskrybować i obsługiwać zdarzenia obiektu środowisko wykonawcze systemu Windows.

Przewodnik: tworzenie aplikacji platformy uniwersalnej systemu Windows z użyciem biblioteki WRL i platformy Media Foundation
Dowiedz się, jak utworzyć aplikację platformy UWP korzystającą z programu Microsoft Media Foundation.

Instrukcje: tworzenie klasycznego składnika COM
Pokazuje, jak używać biblioteki szablonów języka C++ środowisko wykonawcze systemu Windows w celu utworzenia podstawowego składnika COM oraz podstawowego sposobu rejestrowania i używania składnika COM z poziomu aplikacji klasycznej.

Instrukcje: bezpośrednie tworzenie wystąpień składników biblioteki WRL
Dowiedz się, jak używać funkcji Microsoft::WRL::Make i Microsoft::WRL::D etails::MakeAndInitialize , aby utworzyć wystąpienie składnika z modułu, który go definiuje.

Instrukcje: Użyj winmdidl.exe i midlrt.exe, aby utworzyć pliki .h z metadanych systemu Windows
Przedstawia sposób korzystania z niestandardowych składników środowisko wykonawcze systemu Windows z listy WRL przez utworzenie pliku IDL z metadanych winmd.

Przewodnik: łączenie za pomocą zadań i żądań XML HTTP
Pokazuje, jak używać interfejsów IXMLHTTPRequest2 i IXMLHTTPRequest2Callback wraz z zadaniami do wysyłania żądań HTTP GET i POST do usługi internetowej w aplikacji platformy UWP.

Przykład Bing Mapy Trip Optimizer
Używa klasy zdefiniowanej HttpRequest w przewodniku: Połączenie przy użyciu zadań i żądań HTTP XML w kontekście kompletnej aplikacji platformy UWP.

Tworzenie składnika biblioteki DLL środowisko wykonawcze systemu Windows przy użyciu przykładu języka C++
Pokazuje, jak używać biblioteki szablonów środowisko wykonawcze systemu Windows C++ do tworzenia składnika DLL w procesie i używania go z języków C++/CX, JavaScript i C#.

Próbka gry z marmuru DirectX
Pokazuje, jak używać biblioteki szablonów środowisko wykonawcze systemu Windows C++ do zarządzania okresem istnienia składników COM, takich jak DirectX i Media Foundation w kontekście kompletnej gry 3-W.

Wyskakujące powiadomienia z aplikacji klasycznych
Pokazuje, jak wysyłać wyskakujące powiadomienia z aplikacji klasycznej.

środowisko wykonawcze systemu Windows biblioteka szablonów języka C++ w porównaniu z ATL

środowisko wykonawcze systemu Windows biblioteka szablonów języka C++ przypomina bibliotekę aktywnych szablonów (ATL), ponieważ można jej użyć do tworzenia małych, szybkich obiektów COM. środowisko wykonawcze systemu Windows biblioteki szablonów języka C++ i ATL udostępniają również koncepcje, takie jak definicja obiektów w modułach, jawna rejestracja interfejsów i otwieranie tworzenia obiektów przy użyciu fabryk. Jeśli znasz bibliotekę szablonów ATL, możesz znać bibliotekę szablonów języka środowisko wykonawcze systemu Windows C++.

środowisko wykonawcze systemu Windows biblioteka szablonów języka C++ obsługuje funkcje COM wymagane dla aplikacji platformy UWP. W związku z tym różni się on od ATL, ponieważ pomija bezpośrednie wsparcie dla funkcji COM, takich jak:

  • Agregacja

  • implementacje zapasów

  • podwójne interfejsy (IDispatch)

  • interfejsy modułu wyliczającego w warstwie Standardowa

  • punkty połączenia

  • interfejsy odrętywania

  • Osadzanie OLE

  • ActiveX — formanty

  • COM+

Pojęcia

środowisko wykonawcze systemu Windows biblioteka szablonów języka C++ udostępnia typy reprezentujące kilka podstawowych pojęć. W poniższych sekcjach opisano te typy.

ComPtr

ComPtr to inteligentny typ wskaźnika , który reprezentuje interfejs określony przez parametr szablonu. Służy ComPtr do deklarowania zmiennej, która może uzyskiwać dostęp do elementów członkowskich obiektu pochodzącego z interfejsu. ComPtr automatycznie utrzymuje liczbę odwołań dla bazowego wskaźnika interfejsu i zwalnia interfejs, gdy liczba odwołań przekroczy zero.

RuntimeClass

RuntimeClass reprezentuje utworzoną klasę, która dziedziczy zestaw określonych interfejsów. RuntimeClass Obiekt może zapewnić kombinację obsługi co najmniej jednego interfejsu COM środowisko wykonawcze systemu Windows lub słabego odwołania do składnika.

Moduł

Moduł reprezentuje kolekcję powiązanych obiektów. Module Obiekt zarządza fabrykami klas, które tworzą obiekty i rejestrację, co umożliwia innym aplikacjom używanie obiektu.

Oddzwanianie

Funkcja Wywołania zwrotnego tworzy obiekt, którego funkcja składowa jest procedurą obsługi zdarzeń (metoda wywołania zwrotnego). Callback Użyj funkcji , aby zapisywać operacje asynchroniczne.

EventSource

Usługa EventSource służy do zarządzania delegowanymi procedurami obsługi zdarzeń. Użyj biblioteki szablonów języka środowisko wykonawcze systemu Windows C++, aby zaimplementować delegata i użyć go EventSource do dodawania, usuwania i wywoływania delegatów.

AsyncBase

Baza AsyncBase udostępnia metody wirtualne reprezentujące środowisko wykonawcze systemu Windows asynchroniczny model programowania. Zastąpić składowe w tej klasie, aby utworzyć klasę niestandardową, która może uruchamiać, zatrzymywać lub sprawdzać postęp operacji asynchronicznej.

FtmBase

FtmBase reprezentuje obiekt marshalera bezwątkowy. FtmBase tworzy tabelę interfejsu globalnego (GIT) i ułatwia zarządzanie obiektami marshalingu i serwerem proxy.

WeakRef

WeakRef to typ inteligentnego wskaźnika, który reprezentuje słabe odwołanie, które odwołuje się do obiektu, który może lub nie jest dostępny. WeakRef Obiekt może być używany tylko przez środowisko wykonawcze systemu Windows, a nie przez klasyczny COM.

WeakRef Obiekt zazwyczaj reprezentuje obiekt, którego istnienie jest kontrolowane przez wątek zewnętrzny lub aplikację. Na przykład WeakRef obiekt może odwoływać się do obiektu pliku. Po otwarciu WeakRef pliku plik jest prawidłowy, a przywołyny plik jest dostępny. Jednak po zamknięciu WeakRef pliku plik jest nieprawidłowy i plik jest niedostępny.

Kluczowe interfejsy API według kategorii
Wyróżnia podstawowe typy, funkcje i makra biblioteki szablonów języka C++ środowisko wykonawcze systemu Windows C++.

Odwołanie
Zawiera informacje referencyjne dotyczące biblioteki szablonów języka C++ środowisko wykonawcze systemu Windows.

Krótki przewodnik (C++/CX)
Krótko opisuje funkcje języka C++/CX, które obsługują środowisko wykonawcze systemu Windows.

Używanie składników środowisko wykonawcze systemu Windows w visual C++
Pokazuje, jak utworzyć podstawowy składnik środowisko wykonawcze systemu Windows za pomocą języka C++/CX.