Bir ATL projesi yazıyorum ve buradaki dersleri nasıl oluşturmalıyım? Şu anda Add/Class/ATL Basit Nesne tarafından oluşturulmuş bir sınıf var. Bunu daha küçük sınıflara bölmek istiyorum, ancak bu sınıftaki yöntem CComPtr
kullanmalı ve bir argüman olarak CComPtr
olmalıdır. Orada 'basit' C++ sınıfı oluşturamıyorum çünkü orada CComPtr
yok.ATL projesinde sınıfları nasıl oluşturmalıyım?
ATL Basit Nesne Sihirbazı ile ATL sınıfları oluşturmalı ve sonra yöntemleri çağırmak için bu sınıfın arabirimini kullanmalıyım.
CComPtr<ITestAtlClass> tptr;
tptr.CoCreateInstance(CLSID_TestAtlClass);
tptr->test();
Ve/Yöntem Ekleyin Sınıf Görünümü/ITestAtlClass/bütün kamu yöntemleri eklemek gerekir: Burada gibi mi? Kurucular hakkında ne düşünüyorsunuz? Sınıfımı yalnızca özelliklerine göre başlatmalı mıyım (ve bunları Sınıf Görünümü/ITestAtlClass/Ekle/Özellik Ekle)? Ve her com nesnesini IUnknown arayüzüyle geçirir misiniz?
Birisi bana ATL projesinde nasıl yapılması gerektiğini söyler. Kodumu daha okunabilir hale getirmek için bu daha küçük sınıfları dahili olarak kullanacağım (hiç kimse bu listemi DLL'm dışında oluşturacaktır).
Sadece DLL dışında görünen arabirimler için ATL sınıfları oluşturun. –
@Hans Passant Ancak, CComPtr'yi kullanan basit C++ sınıfı oluşturamıyorum. Nasıl kullanılır? –