Aracılığıyla paylaş


DLL Türleri

Bu konu başlığı altında, derleneceğiniz DLL türünü belirlemenize yardımcı olacak bilgiler sağlanır.

Farklı Türde DLL'ler Kullanılabilir

Visual Studio'yu kullanarak, C veya C++ dilinde Microsoft Foundation Sınıfı (MFC) kitaplığını kullanmayan Win32 DLL'leri oluşturabilirsiniz. Win32 Uygulama Sihirbazı ile MFC olmayan bir DLL projesi oluşturabilirsiniz.

MFC kitaplığının kendisi, statik bağlantı kitaplıklarında veya bir dizi DLL'de MFC DLL Sihirbazı ile kullanılabilir. DLL'niz MFC kullanıyorsa Visual Studio üç farklı DLL geliştirme senaryolarını destekler:

  • MFC'ye statik olarak bağlanan normal bir MFC DLL oluşturma

  • MFC'ye dinamik olarak bağlanan normal bir MFC DLL oluşturma

  • Her zaman MFC'yi dinamik olarak bağlayan bir MFC uzantısı DLL'i oluşturma

Ne hakkında daha fazla bilgi edinmek istiyorsunuz?

Kullanılacak DLL Türüne Karar Verme

DLL'niz MFC kullanmıyorsa, MFC olmayan bir Win32 DLL oluşturmak için Visual Studio'yu kullanın. DLL'nizi MFC'ye bağlamak (statik veya dinamik olarak) önemli bir disk alanı ve bellek gerektirir. DLL'niz gerçekten MFC kullanmıyorsa MFC'ye bağlanmamalısınız.

DLL'niz MFC kullanacaksa ve MFC veya MFC dışı uygulamalar tarafından kullanılacaksa, MFC'ye dinamik olarak bağlanan normal bir MFC DLL'si veya MFC'ye statik olarak bağlanan normal bir MFC DLL'si oluşturmanız gerekir. Çoğu durumda, DLL'nin dosya boyutu çok daha küçük olacağı ve MFC'nin paylaşılan sürümünün kullanılmasıyla bellekte kaydedilen tasarruflar önemli olabileceğinden, MFC'ye dinamik olarak bağlanan normal bir MFC DLL kullanmak isteyebilirsiniz. MFC'ye statik olarak bağlanırsanız, DLL'nizin dosya boyutu daha büyük olur ve MFC kitaplık kodunun kendi özel kopyasını yüklediğinden ek bellek kaplar.

MFC'ye dinamik olarak bağlanan bir DLL oluşturmak, MFC'nin kendisini bağlamak gerekmediğinden MFC'ye statik olarak bağlanan bir DLL oluşturmaktan daha hızlıdır. Bu özellikle bağlayıcının hata ayıklama bilgilerini sıkıştırması gereken hata ayıklama derlemelerinde geçerlidir. Zaten hata ayıklama bilgilerini içeren bir DLL'ye bağlanarak, DLL'nizin içinde sıkıştırılacak daha az hata ayıklama bilgisi vardır.

MFC'ye dinamik olarak bağlanmanın bir dezavantajı, paylaşılan Mfcx0.dll ve Msvcrxx.dll DLL'lerini (veya benzer dosyaları) DLL'nizle dağıtmanız gerektiğidir. MFC DLL'leri serbestçe yeniden dağıtılabilir, ancak yine de DLL'leri kurulum programınıza yüklemeniz gerekir. Ayrıca, hem programınız hem de MFC DLL'leri tarafından kullanılan C çalışma zamanı kitaplığını içeren Msvcrxx.dll dosyasını göndermeniz gerekir.

DLL'niz yalnızca MFC yürütülebilir dosyaları tarafından kullanılacaksa, normal bir MFC DLL'si veya MFC uzantı DLL'si oluşturma arasında bir seçeneğiniz vardır. DLL'niz mevcut MFC sınıflarından türetilmiş yeniden kullanılabilir sınıflar uyguluyorsa veya uygulama ile DLL arasında MFC türetilmiş nesneleri geçirmeniz gerekiyorsa, bir MFC uzantısı DLL'i oluşturmanız gerekir.

DLL'niz MFC'ye dinamik olarak bağlandıysa, MFC DLL'leri DLL'nizle yeniden dağıtılabilir. Bu mimari, disk alanından tasarruf etmek ve bellek kullanımını en aza indirmek için sınıf kitaplığını birden çok yürütülebilir dosya arasında paylaşmak için özellikle yararlıdır.

Ne hakkında daha fazla bilgi edinmek istiyorsunuz?

Ayrıca bkz.

Visual Studio'da C/C++ DLL'leri oluşturma