Windows Çalışma Zamanı C++ Şablon Kitaplığı (WRL)

Windows Çalışma Zamanı C++ Şablon Kitaplığı (WRL), Windows Çalışma Zamanı bileşenleri yazmak ve kullanmak için alt düzey bir yol sağlayan bir şablon kitaplığıdır.

Not

WRL artık Windows Çalışma Zamanı API'leri için standart bir C++17 dil projeksiyonu olan C++/WinRT ile değiştirilir. C++/WinRT, Windows SDK'sında 1803 (10.0.17134.0) sürümünden itibaren kullanılabilir. C++/WinRT tamamen üst bilgi dosyalarında uygulanır ve modern Windows API'sine birinci sınıf erişim sağlamak için tasarlanmıştır.

C++/WinRT ile, standartlara uygun herhangi bir C++17 derleyicisini kullanarak api'leri hem kullanabilir hem de Windows Çalışma Zamanı yazabilirsiniz. C++/WinRT genellikle daha iyi performans gösterir ve Windows Çalışma Zamanı için diğer dil seçeneklerinden daha küçük ikili dosyalar üretir. C++/CX ve WRL'yi desteklemeye devam edeceğiz, ancak yeni uygulamaların C++/WinRT kullanmasını kesinlikle öneririz. Daha fazla bilgi için bkz . C++/WinRT.

Sosyal haklar

Windows Çalışma Zamanı C++ Şablon Kitaplığı, Bileşen Nesne Modeli (COM) bileşenlerini daha kolay uygulamanıza ve kullanmanıza olanak tanır. Nesnelerin yaşam ömrünü yönetmek için başvuru sayma ve işlemin başarılı veya başarısız olup olmadığını belirlemek için HRESULT değerlerini test etme gibi temizlik teknikleri sağlar. Windows Çalışma Zamanı C++ Şablon Kitaplığı'nı başarıyla kullanmak için bu kuralları ve teknikleri dikkatle izlemeniz gerekir.

C++/CX, Windows Çalışma Zamanı bileşenlerini kullanmanın üst düzey, dil tabanlı bir yoludur. Hem Windows Çalışma Zamanı C++ Şablon Kitaplığı hem de C++/CX, sizin adınıza temizlik görevlerini otomatik olarak gerçekleştirerek Windows Çalışma Zamanı için kod yazmayı basitleştirir.

Windows Çalışma Zamanı C++ Şablon Kitaplığı ve C++/CX farklı avantajlar sağlar. C++/CX yerine Windows Çalışma Zamanı C++ Şablon Kitaplığı'nı kullanmak istemeniz için bazı nedenler şunlardır:

  • Windows Çalışma Zamanı C++ Şablon Kitaplığı, Windows Çalışma Zamanı Uygulama İkili Arabirimi (ABI) üzerinde çok az soyutlama oluşturduğunuzdan, Windows Çalışma Zamanı API'leri daha iyi oluşturmak veya kullanmak için temel alınan kodu denetleme olanağı sağlar.

  • C++/CX, COM HRESULT değerlerini özel durumlar olarak temsil eder. COM kullanan veya özel durumlar kullanmayan bir kod tabanı devraldıysanız, özel durumları kullanmanız gerekmediğinden Windows Çalışma Zamanı C++ Şablon Kitaplığı'nın Windows Çalışma Zamanı ile çalışmanın daha doğal bir yolu olduğunu fark edebilirsiniz.

    Not

    Windows Çalışma Zamanı C++ Şablon Kitaplığı HRESULT değerlerini kullanır ve özel durumlar oluşturmaz. Ayrıca Windows Çalışma Zamanı C++ Şablon Kitaplığı, uygulama kodunuz özel durum oluştururken nesnelerin doğru şekilde yok edilmesine yardımcı olmak için akıllı işaretçileri ve RAII desenini kullanır. Akıllı işaretçiler ve RAII hakkında daha fazla bilgi için bkz . Akıllı İşaretçiler ve Nesnelerin KaynaklarıNa Sahip (RAII).

  • Windows Çalışma Zamanı C++ Şablon Kitaplığı'nın amacı ve tasarımı, COM nesnelerinin programlamasını basitleştiren şablon tabanlı C++ sınıfları kümesi olan Active Template Library'den (ATL) ilham alır. Windows Çalışma Zamanı C++ Şablon Kitaplığı, Windows Çalışma Zamanı sarmak için standart C++ kullandığından, ATL'de Windows Çalışma Zamanı yazılmış birçok mevcut COM bileşenini daha kolay bir şekilde taşıyabilir ve bunlarla etkileşim kurabilirsiniz. ATL'yi zaten biliyorsanız Windows Çalışma Zamanı C++ Şablon Kitaplığı programlamanın daha kolay olduğunu fark edebilirsiniz.

Kullanmaya Başlama

Burada, Windows Çalışma Zamanı C++ Şablon Kitaplığı ile hemen çalışmaya başlamanıza yardımcı olabilecek bazı kaynaklar yer alır.

Nasıl yapılır: Windows Çalışma Zamanı Bileşenini Etkinleştirme ve Kullanma
Windows Çalışma Zamanı başlatmak ve bir Windows Çalışma Zamanı bileşenini etkinleştirmek ve kullanmak için Windows Çalışma Zamanı C++ Şablon Kitaplığı'nın nasıl kullanılacağını gösterir.

Nasıl yapılır: Zaman Uyumsuz İşlemleri Tamamlama
zaman uyumsuz işlemleri başlatmak ve işlemler tamamlandığında iş gerçekleştirmek için Windows Çalışma Zamanı C++ Şablon Kitaplığı'nın nasıl kullanılacağını gösterir.

Nasıl yapılır: Olayları İşleme
bir Windows Çalışma Zamanı nesnesine abone olmak ve olayları işlemek için Windows Çalışma Zamanı C++ Şablon Kitaplığı'nın nasıl kullanılacağını gösterir.

İzlenecek yol: WRL ve Medya Altyapısı kullanarak UWP uygulaması oluşturma
Microsoft Media Foundation kullanan bir UWP uygulaması oluşturmayı öğrenin.

Nasıl yapılır: Klasik COM Bileşeni Oluşturma
Temel bir COM bileşeni oluşturmak için Windows Çalışma Zamanı C++ Şablon Kitaplığı'nın nasıl kullanılacağını ve bir masaüstü uygulamasından COM bileşenini kaydetmenin ve kullanmanın temel bir yolunu gösterir.

Nasıl yapılır: Doğrudan WRL Bileşenlerinin Örneğini Oluşturma
Bir bileşeni tanımlayan modülden örnek oluşturmak için Microsoft::WRL::Make ve Microsoft::WRL::D etails::MakeAndInitialize işlevlerini 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 verilerinden bir IDL dosyası oluşturarak WRL'den özel Windows Çalışma Zamanı bileşenlerini kullanmayı gösterir.

İzlenecek Yol: Görevleri ve XML HTTP İsteklerini Kullanarak Bağlanma
UWP uygulamasında bir web hizmetine HTTP GET ve POST istekleri göndermek için IXMLHTTPRequest2 ve IXMLHTTPRequest2Callback arabirimlerinin görevlerle birlikte nasıl kullanılacağını gösterir.

Bing Haritalar Gezi İyileştirici örneği
HttpRequest İzlenecek Yol: Eksiksiz bir UWP uygulaması bağlamında Görevleri ve XML HTTP İsteklerini Kullanarak Bağlanma bölümünde tanımlanan sınıfı kullanır.

C++ örneğiyle Windows Çalışma Zamanı DLL bileşeni oluşturma
İşlem içi DLL bileşeni oluşturmak ve C++/CX, JavaScript ve C# ile kullanmak için Windows Çalışma Zamanı C++ Şablon Kitaplığı'nın nasıl kullanılacağını gösterir.

DirectX mermer labirent oyun örneği
DirectX ve Media Foundation gibi COM bileşenlerinin kullanım ömrünü tam bir 3B oyun bağlamında yönetmek için Windows Çalışma Zamanı C++ Şablon Kitaplığı'nın nasıl kullanılacağını gösterir.

Masaüstü uygulamalarından bildirim bildirimleri
Masaüstü uygulamasından bildirim göndermeyi gösterir.

ATL ile karşılaştırıldığında Windows Çalışma Zamanı C++ Şablon Kitaplığı

Windows Çalışma Zamanı C++ Şablon Kitaplığı, etkin şablon kitaplığına (ATL) benzer çünkü bunu kullanarak küçük, hızlı COM nesneleri oluşturabilirsiniz. Windows Çalışma Zamanı C++ Şablon Kitaplığı ve ATL ayrıca modüllerdeki nesnelerin tanımı, arabirimlerin açık kaydı ve fabrikaları kullanarak açık nesne oluşturma gibi kavramları paylaşır. ATL'yi biliyorsanız Windows Çalışma Zamanı C++ Şablon Kitaplığı'nda rahat olabilirsiniz.

Windows Çalışma Zamanı C++ Şablon Kitaplığı, UWP uygulamaları için gereken COM işlevselliğini destekler. Bu nedenle, AŞAĞıDAKIler gibi COM özellikleri için doğrudan desteği atladığı için ATL'den farklıdır:

  • Toplama

  • hisse senedi uygulamaları

  • çift arabirimler (IDispatch)

  • standart numaralandırıcı arabirimleri

  • bağlantı noktaları

  • kopma arabirimleri

  • OLE ekleme

  • ActiveX denetimleri

  • COM+

Kavramlar

Windows Çalışma Zamanı C++ Şablon Kitaplığı birkaç temel kavramı temsil eden türler sağlar. Aşağıdaki bölümlerde bu türler açıklanmaktadır.

ComPtr

ComPtr , şablon parametresi tarafından belirtilen arabirimi temsil eden bir akıllı işaretçi türüdür. Arabiriminden türetilen bir nesnenin üyelerine erişebilen bir değişken bildirmek için kullanın ComPtr . ComPtr temel arabirim işaretçisi için otomatik olarak bir başvuru sayısı tutar ve başvuru sayısı sıfıra çıktığında arabirimi serbest bırakır.

RuntimeClass

RuntimeClass , belirtilen arabirim kümesini devralan örnek oluşturulmuş bir sınıfı temsil eder. Bir RuntimeClass nesne, bir veya daha fazla Windows Çalışma Zamanı COM arabirimi için desteğin bir bileşimini veya bir bileşene zayıf başvuru sağlayabilir.

Modül

Modül , ilgili nesnelerin bir koleksiyonunu temsil eder. Nesne Module , nesne oluşturan sınıf fabrikalarını ve diğer uygulamaların nesne kullanmasını sağlayan kaydı yönetir.

Geri Arama

Geri Çağırma işlevi, üye işlevi bir olay işleyicisi (geri çağırma yöntemi) olan bir nesne oluşturur. Callback Zaman uyumsuz işlemler yazmak için işlevini kullanın.

EventSource

EventSource, temsilci olay işleyicilerini yönetmek için kullanılır. Bir temsilci uygulamak için Windows Çalışma Zamanı C++ Şablon Kitaplığını kullanın ve temsilci eklemek, kaldırmak ve çağırmak için kullanınEventSource.

AsyncBase

AsyncBase, Windows Çalışma Zamanı zaman uyumsuz programlama modelini temsil eden sanal yöntemler sağlar. Zaman uyumsuz bir işlemin ilerleme durumunu başlatabilen, durdurabilen veya denetleyebilen ö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 hazırlama ve ara sunucu nesnelerini yönetmeye yardımcı olur.

WeakRef

WeakRef, erişilebilir veya erişilebilir olmayabilecek bir nesneye başvuran zayıf başvuruyu temsil eden bir akıllı işaretçi türüdür. Bir WeakRef nesne, klasik COM tarafından değil, yalnızca Windows Çalışma Zamanı tarafından kullanılabilir.

Nesne WeakRef genellikle varlığı dış iş parçacığı veya uygulama tarafından denetlenen bir nesneyi temsil eder. Örneğin, bir WeakRef nesne bir dosya nesnesine başvurabilir. Dosya açık olduğunda, WeakRef geçerli olur ve başvuruda bulunılan dosyaya erişilebilir. Ancak dosya kapatıldığında geçersiz WeakRef olur ve dosyaya erişilemez.

Kategoriye Göre Anahtar API'ler
Birincil Windows Çalışma Zamanı C++ Şablon Kitaplığı türlerini, işlevlerini ve makrolarını vurgular.

Başvuru
Windows Çalışma Zamanı C++ Şablon Kitaplığı için başvuru bilgilerini içerir.

Hızlı Başvuru (C++/CX)
Windows Çalışma Zamanı destekleyen C++/CX özelliklerini kısaca açıklar.

Visual C++'da Windows Çalışma Zamanı Bileşenlerini Kullanma
Temel bir Windows Çalışma Zamanı bileşeni oluşturmak için C++/CX'in nasıl kullanılacağını gösterir.