Assembly ve DLL Arasındaki Fark

Anonim

Assembly vs DLL

Bir kitaplık, uygulamaları geliştirmek için kullanılabilecek kaynakların bir toplamıdır. Bir kütüphane genellikle altprogramlar, 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 çalıştırılabilirler birbirlerine referans yapar. DLL dosyaları, dinamik olarak bağlanan kitaplık dosyalarıdır. DLL, Microsoft tarafından geliştirilmiştir. Ancak, DLL dosyalarıyla ilgili bazı sorunlar nedeniyle Microsoft, (.NET framework'le) Meclisi dosya biçimiyle çıktı. Derleme dosyaları, fiziksel olarak DLL'lere çok benzer, ancak birçok dahili farklılıkları var.

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. Kullanıyor. dll,. ocx veya. drv uzantılarıdır ve Microsoft Windows ve OS / 2 işletim sistemlerinde kullanılırlar … dll düzenli DLL dosyaları tarafından kullanılır. Ve. ocx uzantısı, ActiveX denetimlerini 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ı (32-bit / 64-bit Windows'daki Taşınabilir Yürütülebilir dosyalar ve 16bit Windows'daki Yeni Yürütülebilir Dosyalar) ile aynıdır. Bu nedenle, kod, veri ve kaynakların herhangi bir bileşimi DLL dosyalarında bulunabilir (sadece EXE dosyalarında olduğu gibi). Aslında, DLL dosya biçimindeki veri dosyaları, kaynak DLL'leri olarak adlandırılır. Simge kitaplıkları (. Icl uzantılı) ve yazı tipi dosyaları (.fon ve.fot uzantılarıyla birlikte) kaynak DLL'lerine örnektir.

Kısımlar denilen bileşenler bir DLL oluşturur ve her bölüm salt okunur / yazılabilir ve yürütülebilir / çalıştırılamaz gibi kendi niteliklerine sahiptir. Kod bölümleri yürütülebilir, ancak veri bölümleri çalıştırılamaz. Kod bölümleri paylaşılır ve veri bölümleri özel olur. Demek ki DLL kullanan tüm süreçler aynı kopyayı kullanacak ve her işlem kendi kopyasını alacaktır. Windows için birincil dinamik kütüphane kernel32'dir. dll, Windows'da temel işlevleri (dosya ve bellekle ilgili işlevselliği) içerir. COM (Bileşen Nesne Modeli), DLL'nin OOP (Nesneye Dayalı Programlama) uzantısıdır. Konvansiyonel DLL'ler, COM dosyalarından daha kolaydır.

3'ten büyük ->

Meclis Nedir?

Derleme dosyaları, DLL dosyalarında mevcut olan birkaç sorunu çözmek için Microsoft tarafından tanıtıldı. Meclis dosyaları Microsoft tarafından tanıtıldı. NET çerçevesi. İşlevselliğin yürütülebilir bir mantıksal birimi bir Meclis olarak adlandırılır. Meclisler altında yürütülebilir. NET CLR (Ortak Dil Çalışma Zamanı). Fiziksel olarak, derlemeler EXE veya DLL dosyaları olarak bulunur. Ancak, Microsoft Win32 DLL'leri için dahili olarak çok farklılar. Bir derleme dosyası manifest, metadata, MISL (Microsoft Ara Dil kodu) ve diğer kaynaklardan oluşur.Bir meclis kendini açıklar. Manifestada, ad, sürüm, kültür, güçlü ismi, dosya listesi, türleri ve bağımlılıkları gibi bilgiler bulunur. MISL kodu CLR üzerinden çalıştırılır (doğrudan yürütülmez).

Meclis ve DLL arasındaki fark nedir?

DLL, dinamik olarak bağlı bir kitaplıktır. Derlemeler fiziksel olarak DLL'lere eşit olsa da, dahili olarak çok farklıdır. Bir DLL kümesi arasında tutarlılık sağlamak mümkün değildir, ancak derlemeler kendi kendine açıklayıcı oldukları için (bunlar dahili olarak bağımlılık listesini içerirler) CLR, bir dizi derleme arasında tutarlılık sağlayabilir. DLL'lerin aksine, derleme bilgileri (CLR tarafından) derlemeler için zorlanır. Montajlarla yan yana dağıtım (farklı sürümleri kullanan farklı uygulamalar) mümkündür.