DLL ve LIB karşılaştırması
Kütüphane, uygulamaları geliştirmek için kullanılabilecek bir kaynak koleksiyonudur. Bir kütüphane genellikle altyordamlar, fonksiyonlar, sınıflar, değerler ve tiplerden oluşur. Bağlama işlemi sırasında (genellikle bir bağlayıcı tarafından yapılır), kütüphaneler ve yürütülebilir dosyalar birbirlerine referans verir. Kütüphane dosyaları, alt yordamların hedef uygulamaya yüklendiği saate bağlı olarak statik ve dinamik kütüphanelere bölünür. Buna göre, LIB dosyaları statik olarak bağlı kütüphanelerdir ve DLL dosyaları dinamik olarak bağlı kütüphanelerdir.
DLL nedir?
Dinamik Bağlantı Kitaplığı (daha yaygın olarak DLL olarak bilinir), Microsoft tarafından geliştirilen paylaşılan bir kitaplık uygulamasıdır. .Dll, .ocx veya .drv uzantılarını kullanır ve Microsoft Windows ve OS / 2 işletim sistemlerinde kullanılır… dll normal DLL dosyaları tarafından kullanılır. Ve .ocx uzantısı ActiveX denetimleri içeren kitaplıklar tarafından kullanılır ve .drv uzantısı eski sistem sürücü dosyaları tarafından kullanılır. DLL dosya biçimi, Windows EXE dosyalarıyla aynıdır (32 bit / 64 bit Windows'ta Taşınabilir Yürütülebilir dosyalar ve 16 bit Windows'ta Yeni Yürütülebilir dosyalar). Bu nedenle, herhangi bir kod, veri ve kaynak kombinasyonu DLL dosyalarında (EXE dosyalarında olduğu gibi) bulunabilir. Aslında, DLL dosya biçimindeki veri dosyalarına kaynak DLL'ler denir. Simge kitaplıkları (.icl uzantılı) ve yazı tipi dosyaları (.fon ve .fot uzantılı) kaynak DLL'lerine örnektir.
Bölümler adı verilen bileşenler bir DLL oluşturur ve her bölümün salt okunur / yazılabilir ve yürütülebilir / yürütülebilir olmayan gibi kendi öznitelikleri vardır. Kod bölümleri çalıştırılabilirken, veri bölümleri çalıştırılamaz. Kod bölümleri paylaşılır ve veri bölümleri özeldir. Bu, DLL kullanan tüm işlemlerin kodun aynı kopyasını kullanacağı, her işlemin de kendi veri kopyasına sahip olacağı anlamına gelir. Windows için birincil dinamik kitaplık, Windows'ta temel işlevleri (dosya ve bellekle ilgili işlevsellik) içeren kernel32.dll'dir. COM (Bileşen Nesne Modeli), DLL'in OOP (Nesne Tabanlı Programlama) 'ya uzantısıdır. Geleneksel DLL'lerin kullanımı COM dosyalarına göre daha kolaydır.
LIB nedir?
LIB dosyaları statik kütüphanelerdir (statik olarak bağlı kütüphaneler olarak da bilinir). LIB dosyaları, altyordamlar, harici işlevler ve değişkenler koleksiyonu içerir. LIB dosyaları derleme zamanında çözümlenir (çalışma zamanı yerine). Kod aslında hedef uygulamaya kopyalanır. Bir derleyici, bağlayıcı veya bir bağlayıcı bu çözünürlüğü yapacak ve bir nesne dosyası ve yürütülebilir bir dosya üretir. Bu işleme statik oluşturma işlemi denir.
DLL ve LIB arasındaki fark nedir?
LIB kitaplıkları derleme zamanında çağrılabilir, ancak DLL kitaplıkları yalnızca çalışma zamanı sırasında çağrılabilir. LIB dosyaları DLL dosyalarından önemli ölçüde daha büyüktür. DLL dosyalarıyla ilgili çok yaygın bir sorun, sürüm oluşturma sorunudur. Bu, DLL'in kodu değiştiğinde ve uygulama bir DLL dosyasının yanlış sürümünü kullandığında oluşur. Bu, LIB dosyalarıyla ilişkili bir sorun değildir. Yeniden kullanılabilirlik açısından, sistemlerin yeni sürümlerini veya tamamen yeni uygulamaları yazarken, DLL'ler her zaman LIB'lerden daha iyidir.