Dll ve Exe arasındaki başlıca farklar;

  • Dll windows işletim sistemi için yazılın programların çalışması için gerekli olan kütüphanelerdir.
  • Exe ise windows işletim sisteminde çalıştırılacak programların ilk açılışı yapmasını sağlayan başlatıcıları veya programın tam olarak kendisidir.
  • Exe ler bir programın başlamasını sağlayabilir Dll ler ise sağlayamaz.
  • Exelerin içine Dll soyalarını gömip derleyebilirsiniz. Ancak dllin içine exe gömemezsiniz.
  • Exeler çalıştırılabilir dosyalardır, Dll’ler çalıştırılamaz.

Detaylı açıklamalar;


DLLler programların dinamik olarak bağlantı kurabileceği fonksiyonların bir kütüphanesidir.

Bağlantılar statik ve dinamik olmak üzere ikiye ayrılmaktadır:

1-) Statik bağlantılar icra sırasında değişmezler ve programınızın icrası sırasında kütüphane içindeki
fonksiyonlara erişim için gerekli tüm adres bilgileri icra edilebilir dosya derlendiği sırada
belirlenmiştir ve sabittir.

2-) Dinamik bağlantılar ise sadece gerektiği zaman kurulurlar. Eğer programınız ihtiyaç duyduğu bir
fonksiyonu kendi içinde bulamazsa o zaman Windows gerekli dlli yükler ve içindeki fonksiyonları
programınızın emrine verir. Bu sırada Windows dllin içindeki tüm fonksiyonların adreslerini çözümler
ve dinamik olarak programınız arasında bağlantı kurulmasını sağlar.

Örneğin Visual Basic içinde kullanılan tüm özel kontroller birer dlldir. Tek farkı sadece Visual Basic tarafından işlenen mesajların kendine özgü işlem gerektirmesidir.

Uzantısı .dll olan dosyalara dinamik kütüphane dosyaları denir. .exe formatı arasında küçük bir ayrıntıdan başka fark yoktur. Her ikiside PE (Portable Executable) formatına sahiptir. Bu dosyalar arasındaki tek fark .exe dosyanın main metoduna (entry point) sahip olması, diğerinin olmamasıdır. (Şüphesiz dll dosyaları içerisinde de main isimli metodlar bulunabilir fakat artık o main metodları bir başlangıç metodu ifade etmezler.) Bu nedenle .exe dosya çalışır dakat dlller dosyası çalışmaz.

Bunun dışında içerikleri tamamen aynıdır. Zaten teknik olarak bir .exe dosyası bir .dll dosyası gibi kullanılabildiği halde, bir .dll dosyası .exe dosya gibi kullanılamamaktadır.
.dll içerisindeki sınıflar ve kodlar derlenmiş bir biçimde bulunmaktadır.
Bir kaynak dosya csc.exe derleyicisiyle derlenirken, .exe ‘mi yoksa .dll ‘mi yapılacağı belirlenir.
csc.exe derleyicinde /target seçeneği, üretilecek dosyanın biçimini belirlemekte kullanılır. /target seçeneği şu biçimde kullanılır: /target : [exe, winexe, library, module]
/target ile /t tamamen aynı anlamdadır. /target seçeneğindeki argümanlar şunlardarn biri olabilir.
exe : Bu seçenek konsol exe dosyası üretir ve default’tur. Yani /target seçeneği hiç belirtilmezse sanki /target : exe belirtilmiş gibi işlem görür. Konsol exe programlar işletim sistemi tarafından siyah konsol penceresi çıkartılarak çalıştırılır. (Tabi biz komut satırında yani zaten konsol penceresi içerisindeysek ayrıca bir konsol penceresi açılmaz.)
winexe : Bu seçenek daha çok gui programlar için kullanılır. Burada program çalıştırıldığında bir konsol penceresi açılmaz. Normal gui pencereleri program koduyla oluşturulmaktadır. Eğer derleme winexe seçeneği ile yapılırsa konsol penceresi açılmaz, programcı kod içerisinde de pencere yaratmadıysa program penceresiz çalışır. Bir program hem konsol penceresine hem de gui penceresine sahip olabilir.


Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir