Windows Çalışma Zamanı C++ Şablon Kitaplığı (WRL)
Windows Çalışma Zamanı C++ Şablon Kitaplığı (WRL), Windows Çalışma Zamanı bileşenleri yazıp kullanmanın alt düzey bir yolunu sağlayan bir şablon kitaplığıdır.
Yararları
WRL, Bileşik Nesne Modeli (COM) bileşenlerini daha kolay uygulamanızı ve kullanmanızı sağlar.Nesnenin ömrünü yönetmek için başvuru sayımı ve bir işlemin başarılı ya da başarısız olduğunu belirlemek için HRESULT değerlerini test etme gibi temizlik teknikleri sunar.WRL uygulamasını başarılı olarak kullanmak için bu kuralları ve yöntemleri dikkatle izlemeniz gerekir.
Visual C++ bileşen uzantıları (C++/CX), Windows Çalışma Zamanı bileşenlerini kullanmanın üst düzey, dile dayanan bir yoludur.Hem WRL hem de C++/CX, temizlik görevlerini adınıza otomatik yaparak Windows Çalışma Zamanı için yazma kodunu basitleştirir.
WRL ve C++/CX farklı avantajlar sağlar.C++/CX yerine WRL kullanmak istemenize yol açacak bazı nedenler:
WRL, Windows Çalışma Zamanı Uygulama İkili Arabirimi (ABI) üzerine çok az soyutlama ekleyerek, Windows Çalışma Zamanı API'lerini daha iyi oluşturmak ya da tüketmek için temel kodu daha iyi kontrol etmenizi sağlar.
C++/CX, COM HRESULT değerlerini özel durumlar olarak temsil eder.COM kullanan bir kod tabanını ya da özel durumlar kullanmayan bir tanesini devraldıysanız, özel durumlar kullanmak durumunda olmadığınızdan dolayıWRL belirtecinin Windows Çalışma Zamanı belirteci ile çalışmak için daha doğal bir yol olduğunu fark edebilirsiniz.
[!NOT]
WRL, HRESULT değerlerini kullanır ve özel durum oluşturmaz.Ek olarak, uygulama kodunuz bir özel durum oluşturduğunda nesnelerin düzgün şekilde yok edileceğini garanti etmeye yardımcı olmak için, WRL belirteci bir akıllı işaretçi ve RAII deseni kullanır.Akıllı işaretçiler ve RAII hakkında daha fazla bilgi için bkz: Akıllı İşaretçiler (Modern C++) ve Nesnelerin Kaynakları (RAII).
WRL ürününün amaç ve tasarımında, COM nesneleri programlamayı kolaylaştıran şablon tabanlı bir dizi C++ sınıfı olan Active Template Library'den (ATL) esinlenilmiştir.WRL, Windows Çalışma Zamanı kaydırmak için standart C++ kullandığından, ATL içinde Windows Çalışma Zamanı için yazılmış varolan birçok COM bileşeni ile kolayca bağlantı noktası sağlayabilir ve etkileşime girebilirsiniz.Zaten ATL'yi biliyorsanız, WRL programlamasını daha kolay bulabilirsiniz.
Başlarken
WRL ile çalışmaya hemen başlamanıza yardımcı olabilecek bazı kaynaklar.
Windows Çalışma Zamanı Kitaplığı (WRL)
Bu Kanal 9 videosunda, WRL belirtecinin Windows Mağazası uygulamaları yazmanıza nasıl yardım ettiği ve Windows Çalışma Zamanı bileşenlerinin nasıl yazılacağı ve tüketileceği hakkında daha fazla bilgi edinin.Nasıl yapılır: WRL Kullanarak Windows Çalışma Zamanı Bileşenini Etkinleştirme ve Kullanma
WRL uygulamasının Windows Çalışma Zamanı'yi başlatmak Windows Çalışma Zamanı bileşenini etkinleştirmek ve kullanmak için nasıl kullanılacağını gösterir.Nasıl Yapılır: WRL Kullanarak Zaman Uyumsuz İşlemleri Tamamlama
WRL uygulamasının zaman uyumsuz işlemler başlatmak ve işlemler tamamlandığında iş gerçekleştirmek için nasıl kullanılacağını gösterir.Nasıl Yapılır: WRL Kullanarak Olayları İşleme
WRL uygulamasının bir Windows Çalışma Zamanı nesnesine abone olup olaylarını işlemek için nasıl kullanılacağını gösterir.İzlenecek Yol: WRL Kullanarak Temel Windows Çalışma Zamanı Bileşeni Oluşturma
İki sayı ekleyen temel bir Windows Çalışma Zamanı bileşeni oluşturmak için nasıl WRL kullanılacağını gösterir.Ayrıca olayların nasıl oluşturulacağını ve bileşenin JavaScript kullanan bir Windows Mağazası uygulamasından nasıl kullanılacağını göstermektedir.İzlenecek yol: WRL ve Medya Altyapısı kullanarak Windows Mağazası uygulaması oluşturma
Microsoft Media Foundation kullanan bir Windows Mağazası uygulamasının nasıl oluşturulacağını öğrenin.Nasıl yapılır: WRL Kullanarak Klasik COM Bileşeni Oluşturma
Temel bir COM bileşeni ve kaydetmek için basit bir yol oluşturmak ve bir masaüstü uygulamasından COM bileşenini tüketmek için nasıl WRL kullanılacağını gösterir.Nasıl yapılır: Doğrudan WRL Bileşenlerinin Örneğini Oluşturma
Microsoft::WRL::Make ve Microsoft::WRL::Details::MakeAndInitialize işlevlerini, kendisini tanımlayan modülden bir bileşen oluşturmak için kullanmayı öğrenin.Nasıl yapılır: Windows meta verilerinden .h dosyaları oluşturmak için winmdidl.exe ve midlrt.exe programını kullanma
.winmd meta verisinden bir IDL dosyası oluşturarak özel Windows Runtime bileşenlerinin WRL'den nasıl tüketileceğini gösterir.İzlenecek yol: Görevleri ve XML HTTP İsteklerini Kullanarak Bağlanma
Bir Windows Mağazası uygulamasındaki bir web hizmetine HTTP GET ve POST istekleri göndermek için görevlerle birlikte IXMLHTTPRequest2 ve IXMLHTTPRequest2Callback arabirimlerinin nasıl kullanılacağını gösterir.Bing Maps Trip Optimizer örneği
Eksiksiz bir Windows Mağazası uygulaması bağlamında İzlenecek yol: Görevleri ve XML HTTP İsteklerini Kullanarak Bağlanma içinde tanımlı HttpRequest sınıfını kullanır.C++ ile bir Windows Çalışma Zamanı DLL bileşeni oluşturma örneği
WRL uygulamasının işlem için bir DLL bileşeni oluşturmak ve bu bileşeni C++/CX'ten, JavaScript'ten ve C#'tan kullanmak için nasıl kullanılacağını gösterir.DirectX marble maze oyun örneği
WRL komutunun, bir komple 3-B oyunda DirectX ve Media Foundation gibi COM bileşenlerinin kullanım ömrünü nasıl yöneteceğini gösterir.Masaüstü uygulama örneğinden kutlama bildirimleri gönderme
WRL komutunun, bir masaüstü uygulamasından kutlama bildirimleri ile nasıl çalışacağını gösterir.
WRL ile ATL Karşılaştırması
WRL Etkin Şablon Kitaplığı'na (ATL) benzer çünkü bunu küçük, hızlı COM nesneleri oluşturmak için kullanabilirsiniz.WRL ve ATL ayrıca modüllerdeki nesnelerin tanımı, arabirimlerin açık kaydı ve nesnelerin fabrikalar kullanılarak açık oluşturulması gibi kavramları da paylaşır.ATL hakkında bilgi sahibiyseniz, WRL ile çalışmakta güçlük çekmezsiniz.
WRL, Windows Mağazası uygulamaları için gereken COM işlevini destekler.Bu nedenle, aşağıdakiler gibi COM özellikleri için doğrudan desteği dahil etmediğinden ATL'den farklıdır:
toplama
kalıp uygulamalar
ikili arabirimler (IDispatch)
standart sabit listesi arabirimleri
bağlantı noktaları
etiket arabirimleri
OLE katıştırma
ActiveX denetimleri
COM+
Kavramlar
WRL yeni bir temel kavramlar temsil eden türleri sağlar.Aşağıdaki bölümler bu türleri açıklamaktadır.
ComPtr
ComPtr bir akıllı işaretçi türüdür ve şablon parametresi tarafından belirlenen arabirimi temsil eder.Arabirimden türetilmiş bir nesnenin üyelerine erişebilen bir değişken bildirmek için ComPtr kullanın.ComPtr, temel arabirim işaretçisi için otomatik olarak bir referans sayımı yapar ve başvuru sayısı sıfıra gittiğinde arabirimi serbest bırakır.
RuntimeClass
RuntimeClass belirtilen bir arabirim kümesini devralan oluşturulmuş bir sınıfı temsil eder.Bir RuntimeClass nesnesi bir ya da daha fazla Windows Çalışma Zamanı COM arabirimi desteğini bir kombinasyonu ya da bir bileşene zayıf bir başvuru olabilir.
Modül
Modül ilgili nesnelerin bir koleksiyonunu temsil eder.Bir Module nesnesi, nesneleri oluşturan sınıf fabrikalarını ve diğer uygulamaların bir nesne kullanmasını sağlayan kaydı yönetir.
Geri çağrı
Geri Arama işlevi, üye işlevi bir olay işleyicisi (bir geri arama yöntemi) olan bir nesne oluşturur.Zaman uyumsuz işlemler yazmak için Callback işlevini kullanın.
EventSource
EventSourcetemsilci olay yöneticileri için kullanılır.Bir temsilci uygulamak için WRL, temsilci eklemek, kaldırmak ve çağırmak için EventSource kullanın.
AsyncBase
AsyncBase, Windows Çalışma Zamanı zaman uyumsuz programlama modelini temsil eden sanal yöntemleri sağlar.Zaman uyumsuz bir işlemin ilerlemesini başlatabilen, durdurabilen ya da kontrol edebilen özel bir sınıf oluşturmak için bu sınıftaki üyeleri geçersiz kılın.
FtmBase
FtmBase serbest iş parçacıklı bir sıralayıcı nesnesini temsil eder.FtmBase bir genel arabirim tablosu (GIT) oluşturur ve sıralama ve proxy nesnelerinin yönetimine yardım eder.
WeakRef
WeakRef, erişilebilir olabilecek veya olmayabilecek bir nesneye başvuran zayıf bir başvuruyu temsil eden akıllı bir işaretçidir.Bir WeakRefnesnesi klasik COM tarafından değil yalnızca Windows Çalışma Zamanı tarafından kullanılabilir.
Bir WeakRef nesnesi genelde, varlığı harici bir iş parçacığı ya da uygulama tarafından kontrol edilen bir nesneyi temsil eder.Örneğin bir WeakRef nesnesi bir dosya nesnesine başvurabilir.Dosya açıldığında, WeakRef geçerlidir ve başvurulan dosyaya erişilebilir.Ancak dosya kapatıldığında WeakRef geçersizdir ve dosyaya erişilemez.
İlgili Konular
WRL Sınıf Kitaplığı proje şablonuna nasıl erişileceğini açıklar.Bu şablon, Visual Studio'yu Windows Çalışma Zamanı bileşenleri oluşturmak için kullanmayı basitleştirmeye yardımcı olur. |
|
Ana WRL türlerini, işlevlerini ve makrolarını vurgular. |
|
WRL için başvuru bilgileri içerir. |
|
Kısaca C++/CX özelliklerini açıklar ve Windows Çalışma Zamanı destekler. |
|
Temel bir Windows Çalışma Zamanı bileşeni oluşturmak için nasıl C++/CX kullanılacağını gösterir. |