DLL Oluşturulması ve DLL Kullanımı

Visual Studio kullanarak uygulama geliştirirken bazı durumlarda kaynak kodlarımıza DLL (Dynamic Link Library) dosyalarını referans olarak eklemek isteyebiliriz. Bazı durumlarda hazır oluşturulmuş kütüphaneleri (dll) eklemek gerekli olabilirken, bazı durumlarda ise kendi dll dosyamızı oluşturup daha sonra bu kütüphane dosyamızı diğer projelere referans olarak ekleyip kullanmak isteyebiliriz. Bu yazımızda sizlere basit bir dll dosyasının nasıl oluşturulacağını  ve diğer projelerimize bu dll dosyasının nasıl referans edilerek kullanıma alınacağını resimlerle görselleştirerek aktarmaya çalışacağım.

Öncelikle dll dosyası oluşturabilmek için Visual Studio ortamında yeni proje açma ekranından “Class Library” templete ini seçiyoruz ve oluşturacağımız dll dosyamıza bir isim veriyoruz. Örneğimizde OgrenciLibrary isminde bir dll oluşturuyoruz.

ProjectDll

Karşımıza gelen ekranda standart bir class yapısı mevcut durumda ve biz bu classın adını Ogrenci olarak değiştiriyoruz. Daha sonra bu sınıfa ait property (özellik) leri tanımlıyoruz. Burada tanımladığımız Ad, Soyad ve Yas isimli property ler dll oluşturulduktan sonra diğer projelerde kullanılırken karşımıza çıkacaktır. Gerekli tanımlamaları yaptıktan sonra projeyi F6 ile derliyoruz.

OgrenciBase

Class Library projesini F6 ile build ettikten sonra dll dosyasının oluşturulduğunu kontrol edelim. Bunun için projemizin oluşturulduğu dosya yolundaki Bin\Debug klasörü altına bakalım.

Ogrenci1

Gördüğünüz gibi OgrenciLibrary ismindeki dll dosyamız oluşturulmuş durumda. Şimdi bizim oluşturduğumuz bu dll dosyasını başka bir projemize nasıl ekleyeceğiz ve kullanacağız inceleyelim.

Oluşturulan dll dosyasını kullanmak için yeni bir proje açıyoruz. Biz şu an için var olan solution üzerine sağ tıklayarak add ==> new project ile yeni bir console uygulaması açıyoruz.

Screenshot (2)

Şimdi sıra açılan yeni console projesine daha önce oluşturulan dll dosyasını referans etmeye (eklemeye) geldi. Bunun için yeni açılan projede Solution Explorer penceresindeki Referance isimli sekmede sağ tıklayarak referans ekleme penceresine geliyoruz.

Screenshot (1)

Açılan referans ekleme penceresinden oluşturduğumuz dll dosyasını veya başka bir yerden temin ettiğimiz diğer dll dosyasını seçiyoruz ve OK diyerek dll dosyasını projemize ekliyoruz.

Referans1

Bu işlemin ardından References bölümünün altında eklediğimiz OgrenciLibrary ismindeki dll dosyamız gözüküyor ve projemize dahil etmiş oluyoruz. Daha sonra eklenen dll i using ile kullanıma alıyoruz.

Screenshot (3)

Artık projemize oluşturulan dll dosyası eklenmiş durumda ve yeni projemizde dll içerinde bulunan Ogrenci classını ve buna ait Ad, Soyad ve Yas isimli property leri kullanabiliriz. Bununla beraber yeni projemize ait dosya yolundaki Bin\Debug klasörüne bakarsak OgrenciLibrary ismindeki dll dosyasının buraya eklenmiş olduğunu göreceksiniz.

OgrenciKlasor

Yeni uygulamamızda dll e ait Ogrenci sınıfının property lerine değerler vererek ekrana yazdıralım. Örnek olarak Ad için Abdullah, Soyad için ALTINTAŞ ve Yas için ise 26 değerlerini atayalım ve bu değerleri ekrana yazdıralım.

DllKullanim

Son olarak projemizi derleyip çalıştıralım ve sonucu hep beraber görelim:

DLLSon

Gördüğünüz gibi kendi oluşturduğumuz dll dosyasını başka bir projeye referans ettik ve bu dosyadaki Ogrenci ismindeki sınıfı ve elemanlarını kullandık. Kendi oluşturduğumuz dll dosyaları gibi başka yerlerden temin edebileceğimiz diğer dll dosyalarını da projelerimize referans olarak ekleyip kullanabiliriz.

Konuyla ilgili soru, görüş ve önerilerinizi bana bildirirseniz çok sevinirim. Yorumlarınızı bekliyorum. Bir başka yazıda görüşmek üzere…

Yazar: Abdullah ALTINTAŞ

DLL Oluşturulması ve DLL Kullanımı” üzerine 14 düşünce

  1. Abdullah bey merhaba,

    Benim sorum Visual studio da oluşturulan dll in Visual Basic te nasıl kullanılacağına dair. Bu konuda yardımcı oluriseniz sevinirim

    Saygılar

  2. Abdullah abi ben yanlışlıkla dll dosyasını not defteri yaptım bunu geri düzeltemiyorum yardımcı olursan çok sevinirin

    • Merhabalar,

      Varsayılan program ayarlarını değiştirirseniz düzelecektir. Geç dönüş için kusura bakmayın. Yeni gördüm mesajınızı.

  3. Üstadım güzel anlatmışsın gayet anladım.Benim bir sorum var pek C# bilmiyorum ve nasıl ne yapacağım konusunda bilgi almak isterim sizden.

    Ben şimdi bir çizim programı tarzı bir şey yapmak istiyorum.
    Ve farklı farklı çizim kalemleri kullancam bir panel den seçilcek ve o seçilen şey ile çizim yapılcak özellikleri farklı olacak bu çizimlerin.Resim çizimi gibi.
    Geometrik şekil paneli de yapcam.Kare,Dikdörtgen,Üçgen,Daire vb.
    Aynı şekilde renkleri de ayrı panelde yapacam.
    Bunlar gibi kırpma,ortalama,tam boyut yapma resim yükleme filan yapacam bir çok şey olacak kısaca.

    Benim sorum ise şu ben bu özellikleri class kullanarak mı çekmem doğru olur yoksa her biri için ayrı dll yazsam daha mı iyi.Ve bildiğiniz class ve dll olarak bu bahsettiğim bir çalışma örneği biliyorsanız atarsanız memnun olurum şimdiden teşekkürler.

    • Merhabalar,

      Bunun için temel C# konularını bir araştırmanızda fayda var. Tek tek DLL oluşturmanıza gerek yok, ancak farklı yerlerden elde edebileceğiniz dll leri ekleyerek geliştirmenize hız katabilirsiniz. Geç dönüşüm için kusura bakmayın, yeni gördüm…

  4. Çok güzel bir paylaşım olmuş teşekkürler Abdullah Bey. Ayrıca başka bir konuda da yardıma ihtiyacım var c kodunu dll e çevirip c++ ta çağırmak istiyorum bu konuda da bilgilerinizi paylaşabilir misiniz ?

  5. Merhaba Abdullah Bey, C++ ta yazılmış dll dosyalarını C# ta kullanmak istiyorum. C++/CLI wrapper class yöntemiyle. Bu konuda bilginizi paylaşırsanız sevinirim.

  6. iyi günler,
    excel den veri çekmek istiyorum, fakat referans olarak excel gözükmüyor. Dll olarak excel i nasıl ekleyebilirim?
    Teşekkürler…

    • Merhabalar,
      Hangi platformdan bağlanarak Excel’den veri çekmek istiyorsunuz? C# ile mi bu işlemi gerçekleştireceksiniz yoksa SQL Server ile mi yapmak istiyorsunuz?

    • dll code extractor şeklinde arama yaparak inceleyebilirsiniz. Reflector kullanılarak belirli seviyede decompile edilebiliyor sanırım ama tam olarak istediğinizi elde edebilir misiniz bilemiyorum. Umarım faydalı olur…

Yorum Yaz