Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
COM nesnelerindeki Public sınıflardan, hatta önceki sürümlerinde oluşturulmuş olan Visual Basic sınıflarını türetebilirsiniz. Diğer herhangi bir temel sınıfın özellikleri ve yöntemleri gibi COM nesnelerinden devralınan sınıfların özellikleri ve yöntemleri de geçersiz kılınabilir veya aşırı yüklenebilir. COM nesnelerinden devralma, yeniden derlemek istemediğiniz mevcut bir sınıf kitaplığınız olduğunda kullanışlıdır.
Aşağıdaki yordamda Visual Basic 6.0 kullanarak sınıfı içeren bir COM nesnesi oluşturma ve ardından temel sınıf olarak kullanma işlemleri gösterilmektedir.
Uyarı
Bilgisayarınız, aşağıdaki yönergelerde bazı Visual Studio kullanıcı arabirimi öğeleri için farklı adlar veya konumlar gösterebilir. Sahip olduğunuz Visual Studio sürümü ve kullandığınız ayarlar bu öğeleri belirler. Daha fazla bilgi için bkz. IDE'yi Kişiselleştirme.
Bu kılavuzda kullanılan COM nesnesini oluşturmak için
Visual Basic 6.0'da yeni bir ActiveX DLL projesi açın. adlı
Project1bir proje oluşturulur. adlıClass1bir sınıfı vardır.Proje Gezgini'ndeProject1'e sağ tıklayın ve ardından Project1 Özellikleri'ne tıklayın. Proje Özellikleri iletişim kutusu görüntülenir.
Proje Özellikleri iletişim kutusunun Genel sekmesinde, Proje
ComObject1alanına yazarak proje adını değiştirin.Proje Gezgini'nde öğesine sağ tıklayın
Class1ve ardından Özellikler'e tıklayın. Sınıfın Özellikler penceresi görüntülenir.özelliğini olarak
NameMathFunctionsdeğiştirin.Proje Gezgini'nde öğesine sağ tıklayın
MathFunctionsve ardından Kodu Görüntüle'ye tıklayın. Kod Düzenleyicisi görüntülenir.Özellik değerini tutmak için bir yerel değişken ekleyin:
' Local variable to hold property value Private mvarProp1 As IntegerÖzellik
Letve ÖzellikGetözellik yordamlarını ekleyin.Public Property Let Prop1(ByVal vData As Integer) 'Used when assigning a value to the property. mvarProp1 = vData End Property Public Property Get Prop1() As Integer 'Used when retrieving a property's value. Prop1 = mvarProp1 End Propertyİşlev ekleme:
Function AddNumbers( ByVal SomeNumber As Integer, ByVal AnotherNumber As Integer) As Integer AddNumbers = SomeNumber + AnotherNumber End FunctionDosya menüsünde ComObject1.dllOluştur'a tıklayarak COM nesnesini oluşturun ve kaydedin.
Uyarı
Visual Basic ile oluşturulan bir sınıfı COM nesnesi olarak da kullanıma sunmanıza rağmen, bu gerçek bir COM nesnesi değildir ve bu kılavuzda kullanılamaz. Ayrıntılar için bkz. .NET Framework Uygulamalarında COM Birlikte Çalışabilirliği.
Birlikte Çalışma Derlemeleri
Aşağıdaki yordamda, Yönetilmeyen kod (COM nesnesi gibi) ile Visual Studio'nun kullandığı yönetilen kod arasında köprü görevi gören bir birlikte çalışma derlemesi oluşturacaksınız. Visual Basic'in oluşturduğu birlikte çalışabilirlik derlemesi, COM nesneleriyle çalışmanın birçok ayrıntısını işler; örneğin, birlikte çalışabilirlik işleme süreci, parametreleri ve dönüş değerlerini COM nesnelerine ve COM nesnelerinden geçerken eşdeğer veri türlerine paketleyip dönüştürme. Visual Basic uygulamasındaki başvuru, gerçek COM nesnesini değil ara birim derlemesini işaret eder.
Visual Basic 2005 ve sonraki sürümleriyle COM nesnesi kullanmak için
Yeni bir Visual Basic Windows Uygulaması projesi açın.
Project menüsünde Başvuru Ekleseçeneğine tıklayın.
Başvuru Ekle iletişim kutusu görüntülenir.
COM sekmesinde
ComObject1listesine çift tıklayın ve Tamam'a tıklayın.Project menüsünde Yeni Öğe Ekleseçeneğine tıklayın.
Yeni Öğe Ekle iletişim kutusu görüntülenir.
Şablonlar bölmesinde Sınıf'a tıklayın.
Varsayılan dosya adı olan
Class1.vb, Ad alanında görünür. Bu alanı MathClass.vb olarak değiştirin ve Ekle'ye tıklayın. Bu, adlıMathClassbir sınıf oluşturur ve kodunu görüntüler.COM sınıfından devralmak için aşağıdaki kodu en üstüne
MathClassekleyin.' The inherited class is called MathFunctions in the base class, ' but the interop assembly appends the word Class to the name. Inherits ComObject1.MathFunctionsClassAşağıdaki kodu
MathClassekleyerek temel sınıfın genel metodunu aşırı yükleyin:' This method overloads the method AddNumbers from the base class. Overloads Function AddNumbers( ByVal SomeNumber As Integer, ByVal AnotherNumber As Integer) As Integer Return SomeNumber + AnotherNumber End Functiondevralınan sınıfını genişletmek için aşağıdaki kodu ekleyin
MathClass:' The following function extends the inherited class. Function SubtractNumbers( ByVal SomeNumber As Integer, ByVal AnotherNumber As Integer) As Integer Return AnotherNumber - SomeNumber End Function
Yeni sınıf, COM nesnesindeki temel sınıfın özelliklerini devralır, bir yöntemi aşırı yükler ve sınıfını genişletmek için yeni bir yöntem tanımlar.
Devralınan sınıfı test etmek için
Başlangıç formunuza bir düğme ekleyin ve kodunu görüntülemek için çift tıklayın.
Düğmenin
Clickolay işleyici yordamında aşağıdaki kodu ekleyerek örneğiMathClassoluşturun ve aşırı yüklenmiş yöntemleri çağırın:Dim Result1 As Short Dim Result2 As Integer Dim Result3 As Integer Dim MathObject As New MathClass Result1 = MathObject.AddNumbers(4S, 2S) ' Add two Shorts. Result2 = MathObject.AddNumbers(4, 2) 'Add two Integers. Result3 = MathObject.SubtractNumbers(2, 4) ' Subtract 2 from 4. MathObject.Prop1 = 6 ' Set an inherited property. MsgBox("Calling the AddNumbers method in the base class " & "using Short type numbers 4 and 2 = " & Result1) MsgBox("Calling the overloaded AddNumbers method using " & "Integer type numbers 4 and 2 = " & Result2) MsgBox("Calling the SubtractNumbers method " & "subtracting 2 from 4 = " & Result3) MsgBox("The value of the inherited property is " & MathObject.Prop1)F5 tuşuna basarak projeyi çalıştırın.
Formdaki düğmeye tıkladığınızda, AddNumbers yöntem ilk olarak veri türü numaralarıyla Short çağrılır ve Visual Basic temel sınıftan uygun yöntemi seçer. İkinci çağrı AddNumbers, MathClass aşırı yükleme yöntemine yönlendirilir. Üçüncü çağrı, sınıfını SubtractNumbers genişleten yöntemini çağırır. Temel sınıftaki özelliği ayarlanır ve değer görüntülenir.
Sonraki Adımlar
Aşırı yüklenmiş AddNumbers işlevin, COM nesnesinin temel sınıfından devralınan yöntemle aynı veri türüne sahip olduğunu fark etmiş olabilirsiniz. Bunun nedeni, temel sınıf yönteminin bağımsız değişkenleri ve parametrelerinin Visual Basic 6.0'da 16 bit tamsayılar olarak tanımlanmasıdır, ancak Visual Basic'in sonraki sürümlerinde türün Short 16 bit tamsayıları olarak sunulur. Yeni işlev 32 bit tamsayıları kabul eder ve temel sınıf işlevini aşırı yükler.
COM nesneleriyle çalışırken, parametrelerin boyutunu ve veri türlerini doğruladığınızdan emin olun. Örneğin, bir Visual Basic 6.0 koleksiyon nesnesini bağımsız değişken olarak kabul eden bir COM nesnesi kullandığınızda, Visual Basic'in sonraki bir sürümünden koleksiyon sağlayamazsınız.
COM sınıflarından devralınan özellikler ve yöntemler geçersiz kılınabilir; başka bir deyişle, temel COM sınıfından devralınan bir özelliğin veya yöntemin yerini alacak bir yerel özellik veya yöntem bildirebilirsiniz. Devralınan COM özelliklerini geçersiz kılma kuralları, aşağıdaki özel durumlarla diğer özellikleri ve yöntemleri geçersiz kılma kurallarına benzer:
BIR COM sınıfından devralınan herhangi bir özelliği veya yöntemi geçersiz kılarsanız, diğer devralınan tüm özellikleri ve yöntemleri geçersiz kılmanız gerekir.
Parametre kullanan
ByRefözellikler geçersiz kılınamaz.