DLL Dosyaları Nedir ve Bilgisayarımda Neden Biri Eksik?

Windows'un belirli bir DLL dosyasını bulamadığını söyleyen bir hata aldığınızda, dosyayı oradaki birçok DLL sitesinden birinden indirmek çok cazip gelebilir. İşte neden yapmamalısın.

DLL'ler nedir?

İLGİLİ: rundll32.exe Nedir ve Neden Çalışıyor?

İnternetten Dinamik Bağlantı Kitaplığı (DLL) dosyalarını neden indirmemeniz gerektiğine başlamadan önce, öncelikle DLL dosyalarının ne olduğuna bir göz atalım. Bir DLL dosyası, Windows'ta belirli bir etkinliği gerçekleştirmek için bir dizi kod ve veri içeren bir kitaplıktır. Uygulamalar daha sonra bu aktivitenin gerçekleştirilmesine ihtiyaç duyduklarında bu DLL dosyalarını çağırabilir. DLL dosyaları, DLL dosyalarının doğrudan Windows'ta çalıştırılamaması dışında, çalıştırılabilir (EXE) dosyalara çok benzer. Başka bir deyişle, bir DLL dosyasını çift tıklayıp bir EXE dosyasıyla aynı şekilde çalıştıramazsınız. Bunun yerine, DLL dosyaları diğer uygulamalar tarafından çağrılmak üzere tasarlanmıştır. Aslında, aynı anda birden fazla uygulama tarafından çağrılmak üzere tasarlanmıştır. DLL adının "bağlantı" kısmı da başka bir önemli yönü göstermektedir. Birden çok DLL birbirine bağlanabilir, böylece bir DLL çağrıldığında,bir dizi başka DLL de aynı anda çağrılır.

C:\Windows\System32Klasörde bir tur size söyleyebileceği gibi, Windows'un kendisi DLL'leri kapsamlı bir şekilde kullanır . Bahsettiklerimizin bir örneği olarak, Windows sistem dosyası "comdlg32.dll" yi ele alalım. Diğer bir deyişle Ortak İletişim Kutusu Kitaplığı olarak bilinen bu dosya, Windows'ta gördüğünüz yaygın iletişim kutularının çoğunu oluşturmak için kod ve veriler içerir - dosya açma, belge yazdırma vb. Şeyler için iletişim kutuları. Bu DLL'deki talimatlar, iletişim kutusu için amaçlanan mesajların alınması ve yorumlanmasından, iletişim kutusunun ekranınızda nasıl göründüğünü belirlemeye kadar her şeyi ele alır. Açıkçası, birden fazla uygulama bu DLL'yi aynı anda arayabilir, aksi takdirde aynı anda birden fazla uygulamada bir iletişim kutusu (aşağıdaki gibi) açamazsınız.

DLL'ler kodun modülerleştirilmesine ve yeniden kullanılmasına izin verir, bu da geliştiricilerin sıradan veya genel işlevleri gerçekleştirmek için sıfırdan kod yazmak için zaman harcamak zorunda olmadıkları anlamına gelir. Ve geliştiriciler uygulamalarıyla birlikte yüklemek için kendi DLL'lerini oluşturacak olsalar da, uygulamalar tarafından çağrılan DLL'lerin büyük çoğunluğu aslında Windows ile veya Microsoft .NET Framework veya Microsoft C ++ Yeniden Dağıtılabilirleri gibi ekstra paketlerle paketlenmiştir. Kodun bu şekilde modüler hale getirilmesinin diğer büyük avantajı, güncellemelerin bir uygulamanın tamamı yerine her DLL'ye uygulanmasının daha kolay olmasıdır - özellikle bu DLL'ler uygulamanın geliştiricisinden gelmediğinde. Örneğin, Microsoft .NET Framework'teki belirli DLL'leri güncellediğinde, bu DLL'leri kullanan tüm uygulamalar güncellenmiş güvenlik veya işlevsellikten anında yararlanabilir.

İLGİLİ: Microsoft .NET Framework Nedir ve Neden Bilgisayarıma Yükleniyor?

İndirilen DLL'ler Eski Olabilir

Öyleyse, kayışlarımızın altındaki DLL'leri biraz anlayarak, sisteminizde eksik olan DLL'leri neden İnternet'ten indirmiyorsunuz?

İndirilen DLL'lerle karşılaşacağınız en yaygın sorun, güncel olmamalarıdır. Dışarıdaki DLL sitelerinin çoğu, DLL'lerini yalnızca kendi bilgisayarlarından veya kullanıcılarının bilgisayarlarından yükleyerek alır. Muhtemelen sorunu şimdiden görebilirsiniz. Bu sitelerin çoğu yalnızca trafiğinizi ister ve bir DLL yüklendikten sonra, dosyanın güncel tutulmasını sağlamak için çok az teşvikleri vardır. Satıcıları genellikle ayrı ayrı dosyalar olarak kamuoyuna güncellenen dll bırakmazsanız bu ekleyin ve hatta siteleri görebilirsiniz  denemek bugüne kadar dosyaları tutmak için muhtemelen çok başarılı olmak değildir.

Ayrıca DLL'lerin genellikle paketlere entegre edilmesiyle ilgili başka bir sorun da var. Bir paketteki bir DLL'ye yönelik bir güncelleme, genellikle aynı paketteki diğer, ilgili DLL'lerdeki güncellemelerle birlikte gelir; bu, pek olası olmayan bir durumda bile güncel bir DLL dosyası alsanız bile güncellendi.

İndirilen DLL'ler Etkilenebilir

Daha az yaygın olsa da, potansiyel olarak çok daha kötü bir sorun, satıcı dışındaki kaynaklardan indirdiğiniz DLL'lerin bazen bilgisayarınıza bulaşabilecek virüsler veya diğer kötü amaçlı yazılımlarla yüklenebilmesidir. Bu, özellikle dosyalarını nereden aldıkları konusunda çok dikkatli olmayan siteler için geçerlidir. Ve bu siteler size riskli kaynaklarını anlatmak için kendi yollarından çıkmayacaklar. Gerçekten korkutucu olan kısım, virüslü bir DLL dosyasını indirirseniz, bu dosyaya normal virüslü bir dosyanın alabileceğinden daha derin erişim sağlama riskini — DLL dosyalarının doğası gereği — riske atmanızdır.

İLGİLİ: Windows 10 için En İyi Antivirüs Nedir? (Windows Defender Yeterince İyi mi?)

Buradaki iyi haber şu ki, iyi, gerçek zamanlı bir virüsten koruma uygulaması genellikle bu virüslü DLL dosyalarını sisteminize kaydedilmeden önce algılayabilir ve herhangi bir zarar vermelerini önleyebilir. Yine de, harika bir antivirüs programının bile size mükemmel koruma sağlamayabileceğini unutmamalısınız. Riskli dosyaları indirmeyi alışkanlık haline getirirseniz, muhtemelen bir noktada sizi yakalar. Bu DLL sitelerinden kaçınmak en iyisidir.

Muhtemelen Zaten Sorununuzu Çözmeyecekler

Bilgisayarınızdaki yalnızca tek bir DLL dosyasının bozulmuş veya silinmiş olması mümkün olsa da, diğer DLL'lerin veya ilgili uygulama dosyalarının da bozuk veya eksik olması daha olasıdır. Belirli bir dosya hakkında hata almanızın nedeni, uygulamanın çökmeden önce karşılaştığı ilk hata olması ve geri kalanından haberdar edilmemenizdir. Sorunun nedeni ne olursa olsun bu doğru olabilir.

İLGİLİ: Kötü Sektörler Açıklandı: Sabit Diskler Neden Kötü Sektörler Alır ve Bu Konuda Ne Yapabilirsiniz?

DLL'ler neden eksik veya bozuk olabilir? Hatalı başka bir uygulama veya güncelleme dosyayı değiştirmeye çalışmış ve başarısız olmuş ya da eski bir kopya ile değiştirmiş olabilir. Ana uygulamanızın kurulumunda veya .NET gibi bir pakette bir hata olabilir. Hatta sabit diskinizdeki bozuk kesimler gibi dosyanın doğru şekilde yüklenmesini engelleyen başka bir sorun yaşıyor olabilirsiniz.

DLL Hatamı Nasıl Düzeltebilirim?

Kararlı, güncel ve temiz bir DLL elde etmenizi sağlamanın tek yolu, onu oluşturulduğu kaynaktan almaktır. Tipik olarak bu kaynak şu şekilde olacaktır:

İLGİLİ: Windows'ta Bozuk Sistem Dosyaları Nasıl Taranır (ve Düzeltilir)

  • Windows kurulum medyanız . Kurulum medyanızdan bir DLL dosyasını kopyalamanız olası değildir, ancak Windows'u yeniden yüklemek kadar sert bir şey yapmadan önce denemek için hızlı bir seçeneğiniz vardır. Windows'ta bozuk veya eksik sistem dosyalarını tarayıp düzelten Windows Kaynak Koruması aracını (genellikle sistem dosyası denetleyicisi veya SFC olarak anılır) kullanabilirsiniz. Aracı çalıştırırken, oradan bir dosya kopyalaması gerekmesi ihtimaline karşı kurulum medyanızı elinizin altında bulundurmalısınız. (Kurulum diskiniz yoksa buradan indirebilirsiniz.)
  • Microsoft .NET Framework paketleri . .NET'in çeşitli sürümleri Windows ile birlikte otomatik olarak yüklenir ve birçok uygulama da bu paketlerdeki dosyaları yükler. İlişkili sorunları bulmak ve onarmak için bazı öneriler de içeren .NET çerçevesi hakkındaki makalemizi okuyabilirsiniz.
  • Çeşitli Microsoft Visual C ++ Yeniden Dağıtılabilir paketler . Kullandığınız uygulamalara bağlı olarak, bilgisayarınızda C ++ Yeniden Dağıtılabilir'in birden çok sürümü yüklü olabilir. Hangisinin suçlu olduğunu daraltmak bazen zor olabilir, ancak başlamak için iyi bir yer, birkaç sorun giderme adımı ve en güncel sürümleri doğrudan Microsoft'tan indirebileceğiniz bağlantılar içeren C ++ Yeniden Dağıtılabilirleri hakkındaki makalemizdir.
  • DLL'nin geldiği uygulama . DLL, ayrı bir paketin parçası olmak yerine bir uygulama ile birlikte yüklendiyse, yapacağınız en iyi şey uygulamayı yeniden yüklemektir. Bazı uygulamalar tam bir yeniden yükleme yerine onarım yapmanıza izin verir. Bir onarım genellikle yükleme klasörlerindeki eksik dosyaları aradığından her iki seçenek de çalışmalıdır.

Bunların hepsi başarısız olursa, uygulama satıcısıyla iletişime geçebilir ve tek bir DLL dosyasının bir kopyasını talep edebilirsiniz. Bazı firmalar bu talebe açıktır; bazıları değildir. Tek tek dosyalar sağlamayan bir şirketle karşılaşırsanız, en azından sorununuzu çözmek için başka öneriler sunabilirler.