| |
Dll ve Exe dosyaları arasındaki fark nedir ?
27 Ekim 2007
Çalıştırılabilir dosya (.exe - dosyası) bir başlangıç (Main) yöntemine sahiptir, devingen link kütüphaneleri (dinamik link library - dll) ise böyle bir başlangıç noktasına sahip değildirler. Aralarında başka ciddi bir fark yoktur diyebiliriz.
Bir .exe ya da .dll assembly dosyasının başlık kısmında o assembly içerisinde tanımlanmış olan bütün sınıflar , yapılar , bunların elemanları hakkında ayrıntılı bilgiler vardır. Hatta .Net olanakları çercevesinde kütüphanedeki çeşitli sınıflarla bu bilgiler elde edilebilmektedir. (Bu işleme genel olarak reflection denilmektedir.)
Bir .exe ya da bir .dll dosyası ya doğal kod (native code) içerir ya da .Net için oluşturulmuş ara kod (Intermediate Laguage - IL) içerir. Tabiî ki, C# tarafından üretilen .exe ve .dll ara kod içeren dosyalardır. Teknik olarak ara kod içeren dosyalarla içermeyen dosyalar format olarak birbirinin aynısıdır. Her iki dosya formatı da PE(Portable Executable) fakat ara kod içeren dosyların 2 temel farklılığı vardır.
- Kod bölümünde ara kod bulunması.
- Başlık kısmında assembly içerisindeki elemanlar hakkında bilgi veren Metadata veren bölümünün bulunmasıdır.
|