Aracılığıyla paylaş


DLL'leri Kullanmanın Yararları

Dinamik bağlama aşağıdaki avantajlara sahiptir:

  • Belleğe kaydeder ve değiştirmeyi azaltır. Birçok işlem, bellekte DLL dosyasının tek bir kopyasını paylaşarak aynı anda tek bir DLL dosyası kullanabilir. Buna karşın, Windows bir statik bağlantı kitaplığı ile oluşturulmuş her bir uygulamanın belleğine kitaplık kodunun bir kopyasını yüklemelidir.

  • Boş disk alanı kazandırır. Birçok uygulama DLL dosyasının tek bir kopyasını diskte paylaşabilir. Buna karşılık, statik bağlantı kitaplığı ile oluşturulmuş her uygulamanın kitaplık kodu, yürütülebilir resmine ayrı bir kopya olarak bağlıdır.

  • DLL'e yükseltmeler daha kolaydır. Bir DLL'deki işlevler değiştiğinde, işlev bağımsız değişkenleri ve dönüş değerleri değişmedikçe onları kullanan uygulamaların yeniden yapılandırılması veya yeniden bağlantılanması gerekmez. Buna karşılık, statik bağlantılı nesne kodu işlevler değiştikten sonra uygulamanın yeniden bağlanmasını gerektirir.

  • Pazar sonrası desteği sağlar. Örneğin, bir görüntü sürücüsü DLL dosyası uygulama gönderildiğinde kullanılabilir olmayan bir görüntüyü destekleyecek şekilde değiştirilebilir.

  • Çok dilli programları destekler. Farklı programlama dillerinde yazılmış programların tümü, ilgili işlevin çağırma kuralına uyduğu sürece aynı DLL işlevini çağırabilir. Programlar ve DLL işlevi şunlarla uyumlu olmalıdır: işlevin beklediği kendi bağımsız değişkenlerinin yığın üstüne itilme sırası, işlevin veya uygulamanın yığını temizlemekten sorumlu olup olmadığı ve herhangi bir bağımsız değişkenin kayıtlara geçip geçmediği.

  • MFC kitaplık sınıflarını genişletmek için bir mekanizma sağlar. Varolan MFC sınıflarından sınıflar türetebilir ve bunları MFC uygulamaları tarafından kullanılmak üzere bir MFC uzantılı DLL'ye yerleştirebilirsiniz.

  • Uluslararası sürümlerin oluşturulmasını kolaylaştırır. Kaynakları bir DLL'ye yerleştirerek, bir uygulamanın uluslararası sürümlerini çok daha kolayca oluşturabilirsiniz. Uygulamanızın her dil sürümü için bu dizileri ayrı bir kaynak DLL'sine yerleştirebilir ve farklı dil sürümlerinin uygun kaynakları yüklemesini sağlayabilirsiniz.

DLL'ler kullanmanın olası bir dezavantajı, uygulamanın bağımsız olmamasıdır; bu ayrı bir DLL modülünün varlığına bağlıdır.

Ne yapmak istiyorsunuz?

Hangi konu hakkında daha fazla bilgi edinmek istiyorsunuz?

Ayrıca bkz.

Kavramlar

DLL'ler