Yazan : Şadi Evren ŞEKER
Microsoft tarafından windows işletim sistemi üzerinde kullanıma açılan ve çalışma sırasında bağlanmaya izin verilen kütüphane yaklaşımıdır. Basitçe Linux ortamlarındaki .o (object file (nesne dosyası)) benzetilebilir. Bu dosyaların amacı birden fazla program tarafından kullanılan kütüphaneleri içermeleri ve her programın gerekli oldukça ilgili kütüphaneden dosyayı okumasıdır.
Windows öncesi microsoft işletim sisteminde (windows 3.x ve DOS gibi) kullanılan yaklaşımda program tek bir dosyadan oluşmaktaydı. Dolayısıyla programın kullandığı her kütüphane o programa özgü olarak bulunduruluyordu. İşletim sisteminin programın çalıştırılması sırasında herhangi bir bağlama yapması söz konusu değildi.
Windows 95 ile birlikte 32bit sisteme geçen windows, Unix ve dolayısıyla Linux dünyasında da rahatlıkla kullanılabilen object code kavramı windows dünyasına kazandırılmış oldu. Buradaki amaç ortak kullanılan fonksiyonları bir dosyada bulundurmak ve her programın çalıştıırlması sırasında önce bağlayıcı (linker) tarafından bu dosyaların bağlanması ve ardından programın yükleyici (loader) tarafından hafızaya yüklenerek çalıştırılmasıydı.
Bu sayede aynı ortak fonksiyonu kullanan programların herbirisi için kod tekrarı olmayacağı gibi güncellemeler de tek elden takip edilebilecekti. Programcılığın modüler yaklaşımının bir ürünü olan .dll dosyaları günümüzde windows işletim sisteminde yaygın olarak kullanılmaktadır. Bu dosyalar derlenmiş (compiled) kod olduğu için gerekli görülmesi durumunda şifrelenebilmekte ve orjinal kodu koruma altında tutabilmektedir.
Gelişen web teknolojileri ile birlikte .dll dosyalarını windowsun web sunucusu (web server) olan IIS (internet information server) ile de uyumlu hale getiren microsoft, şu anda geliştirilen web projelerini .dll olarak sunucularda barındırıp internet kullanıcılarının erişimine açmaktadır.
.dll dosyalarının bir diğer avantajı da hafızaya bir kere yüklenen dosyaların birden fazla program tarafından paylaşılması bu sayede hafızanın verimli kullanılmasıdır.
Verdiğiniz bilgiler için teşekkürler 🙂 sitenizi uzun zamandır takip ediyorum,çok faydalı bilgiler var…
merak ettiğim,projemiz başka dilde olsa bile (örneğin C++),c ile yazılmış kodları dll haline çevirerek bu projeye bağlayabilir miyiz?
Bu işleri devcpp ortamında nasıl yapabiliriz?
Tekrar verdiğiniz faydalı bilgiler ve bu harika site için teşekkür ederim…
İyi akşamlar dilerim 🙂
Ne yazık ki Dev-CPP ortamında DLL derlemek mümkün değil, veya en azından ben nasıl yapıldığını bilmiyorum. C++ ve C dili için Visual Studio ortamında bahsettiğiniz işlemi yapıp kütüphanelerinizi içeren DLL dosyaları derleyebilirsiniz. Zaten DLL kavramı windows ve dolayısıyla microsoft’a özgü bir kavram ve kendi geliştirme araçları ile derlenmesi gayet normal bir durum.
Başarılar
Cevabınız için teşekkür ederim…
Söylediğiniz gibi bu işler için Visual Studio kullanmaya başladım.
İyi çalışmalar dilerim… 🙂
Cevabınız için teşekkür ederim.
Söylediğiniz gibi DLL için Visual Studio ortamına geçtim…
İyi çalışmalar dilerim… 🙂
Merhabalar,
DLL kavramıyla ilgili araştırma yaptım..
Sonuç olarak DLL’in linux’ta da varlığını keşfettim,tek sorun Windows karakteristiğine uygun olanların DLL uzantısında olması… Dolayısıyla dinamik bağlama işinin Linux’ta farklı yapılması gibi bir durum söz konusu olabilir…
Dev-CPP ile DLL derlemek mümkünmüş… Proje şablonlarında DLL seçeneği var.
Fakat Windows’a özgü ekleri nasıl yapabiliriz diye sormuştum…
Çok zaman geçti üzerinden,geç yanıtım için özür diliyorum..
iyi çalışmalar dilerim…