Harici kitaplıklarla çalışma, Visual Basic'in standart sınıfların yanı sıra üçüncü taraf bileşenleri (DLL'ler) ve klasik COM nesnelerini kullanarak yeteneklerini genişletir.
Başlangıçta VB, esas olarak COM bileşenleri (ActiveX, OCX) ile etkileşim için tasarlanmıştı ve bu tür kitaplıkları "Project – References" üzerinden eklemeye olanak tanıyordu. VB.NET ile birlikte, .NET derlemelerine atıfta bulunma imkanı eklendi ve harici yöntemleri P/Invoke (Declare) üzerinden daha kolay bir şekilde kullanma şansı sağlandı.
Ana zorluk, harici kodla etkileşimde çalışma zamanı hatalarından, uyumluluk sorunlarından ve kaynak sızıntılarından kaçınmak için entegre etme yöntemini doğru bir şekilde seçme gerekliliğidir.
.NET'te, .NET kitaplıkları veya kayıtlı COM bileşenlerini kullanmak için Add Reference kullanılır, bu da bir derlemeye referans ekler; yerel DLL'lerden prosedürleri çağırmak için ise Declare kullanılır.
.NET kitaplığının kullanım örneği (Add Reference):
' .NET referansı eklendikten sonra Imports System.IO Dim reader As New StreamReader("file.txt") Dim line As String = reader.ReadLine() reader.Close()
WinAPI'den bir fonksiyon çağırma örneği (Declare):
' user32.dll (WinAPI) içinden bir fonksiyonu çağırma Declare Function MessageBeep Lib "user32" (ByVal wType As Integer) As Boolean Sub TestBeep() MessageBeep(0) End Sub
Ana özellikler:
Imports yapısını kullanarak harici DLL'lerden fonksiyonlar yüklemek mümkün mü?
Hayır, Imports operatörü yalnızca eklenen derlemelerdeki ad alanlarına erişimi kolaylaştırır, ancak yerel DLL'lerden dinamik olarak fonksiyonları yüklemek için kullanılamaz.
VB.NET'te Add Reference aracılığıyla .NET derlemelerinin kaydedilmesi gerekli mi?
Hayır, .NET kitaplıkları basit bir referans ekleyerek bağlanır ve yalnızca COM kitaplıkları regsvr32 ile kayıt gerektirir.
Declare ile yalnızca yerel Win32 fonksiyonlarını değil, .NET yöntemlerini de bağlayabilir miyim?
Hayır, Declare yalnızca standart (non-.NET) DLL'lerdeki stdcall/FARPROC fonksiyonları için uygulanır. .NET fonksiyonları ise Add Reference/Imports aracılığıyla çağrılır.
Bir geliştirici, dokümantasyonu incelemeden Declare aracılığıyla üçüncü taraf bir .NET kitaplığını kullanmaya çalıştı ve derleme aşamasında hata aldı.
Artılar:
Eksiler:
Doğru bir şekilde Add Reference aracılığıyla .NET referansının eklenmesi, ardından Imports kullanılması ve gerekli sınıfların örneklerinin oluşturulması.
Artılar:
Eksiler: