Bugün, dünya çapında sık sık karşılaşılan 0xc000007b yanılgısının kesin tahlilini sizlere aktarıyoruz! Bazen kullanıcılar Windows bilgisayarlarında bir programı ya da oyunu açmak isterken bu yanılgıyı alır. Pekala bu yanlışın nedeni nedir?
0xc000007b kusuru, Windows sistemlerde “Uygulama düzgün olarak başlatılamadı (0xc000007b). Uygulamayı sonlandırmak için Tamam düğmesini tıklatın.” formunda karşımıza çıkar.
Bu da bize Windows evraklarında ya da uygulamanın DLL evraklarında bir bozulma yahut eksiklik olduğunu gösterir. Bu yanılgıyı bilhassa muteber olmayan kaynaklardan (korsan kullanım) indirme yaparken almanız olasıdır.
0xc000007b kusurunun sebebi, System32 ve SysWOW64 klasörlerine el ile kopyalanan DLL belgeleridir. Gerekli DLL belgeleri özgün yükleme medyası kullanılarak elde edilmelidir, el ile rastgele bir müdahalede bulunulmamalıdır. Pekala bu yanılgıyı nasıl çözeceğiz gelin bir de ona bakalım.
Aslında bu yanılgı, eksik paket kurulumlarında kendini gösterir. Windows’u kurduğunuzda Windows tarafından tüm C++ Redistributable for Visual Studio paketleri kurulmaz. Bu paketler, işletim sisteminde uygulamaların düzgün çalışabilmesi için gerekli DLL evraklarını sisteminize yükler. Genel manada herkes tarafından yapılan yanılgı elle DLL evrakını indirip belge pozisyonuna atmaktır ancak bu yanlış bir hareket. Eksik DLL’leri kurmak için C++ Redistributable for Visual Studio paketlerini sisteme kurmanız gerekir.
Fakat bazen paketleri kurmanıza karşın yanılgıyı almaya devam edersiniz çünkü bozuk DLL belgesi hâlâ sistemde heyetiyse yeni DLL belgesi yüklenmez. Pekala yanılgının kaynağı olan DLL’i nereden buluruz? Alışılmış ki de Process Monitor kullanarak.
Process Monitor nedir ve ne işe fayda?
Process Monitor, bir başka ismiyle ProcMon; Windows için gerçek vakitli evrak sistemi, Kayıt Defteri ve işlem/iş parçacığı aktifliğini gösteren gelişmiş bir izleme aracıdır. Hasılı işletim sisteminde o an çalışan tüm süreçleri her ayrıntısıyla takip edebilirsiniz. Biz de bu yanlışın tahlilinde ProcMon’la uygulamanın bulamadığı ya da erişemediği DLL’leri bulup onları onaracağız.
Process Monitor’le yanılgı raporu almak
Öncelikle Process Monitor’ü indirmemiz gerekmekte ve bunun için de buradan Process Monitor’ü indirebilirsiniz. Akabinde aşağıdaki görüntü rehberimizi kullanarak yanılgı raporunuzu oluşturabilirsiniz.
Process Monitor tahlil ayarları
Process Monitor’ü kullanmak aslında göründüğünden çok daha kolay bir hâle getirilebiliyor. Bunun için uygulamada Highlight yani vurgulama özelliğini kullanacağız. Bu özellik sayesinde alt alta bulunan on binlerce satırın içinden bizim işimize yarayacakları seçebiliyoruz. Bu da yanılgı tahlilini hem hızlandırıyor hem de daha kolay hâle getiriyor.
Öncelikle Result yani sonuç kısmından NAME NOT FOUND yazan bir girdiyi seçiyoruz ve ona sağ tık yapıp Highlight ‘NAME NOT FOUND’ diyoruz. Bu sayede bütün NAME NOT FOUND sonucu veren süreç bilgileri vurgulanacaktır.
Gördüğünüz üzere süreç öncesinde hiçbir vurgulama yokken süreç sonrası gereksinimimiz olan tüm içerikler vurgulanmış bir formda karşımıza çıkıyor.
Process Monitor ile yanılgı analizi
NAME NOT FOUND ile belirtilen sonuçları işaretlediğinizde karşınıza çıkan tablo biraz şaşırtan olabilir. Burada NAME NOT FOUND olarak görünen her şeyin bir kusur olmadığını belirtmekte yarar var. Pekala hangilerinin kusura sebep olduğunu nasıl anlayacağız?
Bunun için raporun altına inerek “Thread Exit” sürecini bulalım. Çünkü Thread Exit, uygulamayı açma teşebbüsünün son bulduğunu belirtiyor bize. Thread Exit sözünün üst taraflarından raporu incelemeye başlayalım. Ek olarak Thread Exit süreci her vakit raporda olmayabilir ya da çabucak üstünde tahlili barındırmayabilir. Bunun için yeniden de tüm raporu tahlil etmekte yarar var.
Gördüğünüz üzere MSVCP140.dll ve VCRUNTIME140.dll evrakları Windows alt klasörleri tarafından bulunamamış. Lakin biraz daha üste, kırmızı oklarla belirtilen yerlere baktığımızda ilgili evrakların SysWOW64 pozisyonunda bulunduğunu görüyoruz. O halde neden bu klasörün alt ve üst klasörlerinde bu DLL belgeleri bulunamıyor? Zira bu pozisyona bu evraklar el ile kopyalanmış. Makalemizin başında da belirttiğimiz üzere el ile DLL yüklemek tahlil değildir, bilakis işleri daha da makûs bir hâle sokabilir.
El ile kopyalanan evrakları kopyalandığı pozisyondan (bu örnekte SysWOW64) siliyoruz. Sonra da sorun çıkaran DLL belgelerinin bulunduğu paketleri kurup belgelerin gereken pozisyona gerçek bir halde yerleştirilmesini sağlıyoruz. Hangi belgenin hangi paket ile geldiğini DLL Evrakları Veritabanımızdan öğrenebilirsiniz. Örneğin biz aşağıda göründüğü üzere kusurun kaynağı olan DLL’imizi tespit edip veritabanından denetim ettik.
Technopat bünyesinde Technopat Toplumsal ismine geliştirilmeye devam eden 0xc000007b kusur tahlil aracımızı kullanabilirsiniz. Bu sistemimizi kullanmak için öncelikle Technopat Sosyal’e üye olmanız gerekmekte. Nasıl üye olacağınızı bilmiyorsanız buradaki rehberimize ilerleyebilirsiniz.
Üye olduktan sonra Technopat Sosyal’de 0xc000007b Yanılgı Tahlili kategorisine ilerliyoruz. 0xc000007b Kusur Tahlili kategorisinde en üstte bulunan “Yeni analiz” seçeneğini seçiyoruz.
Açılan tahlil sekmesinde PML uzantılı ProcMon raporunuzu seçip sisteme yüklemeli ve yanılgıyı aldığınız uygulamanın ismini girmelisiniz.
Biz sorunu MSVCP140.dll ve VCRUNTIME140.dllolarak tespit etmiştik ve Technopat Toplumsal 0xc000007b tahlil yazılımı da birebir içeriği bizlere belirtiyor.
Technopat botunun verdiklerini uygulamanız sonucunda siz de sıkıntınızı tahlile kavuşturabilirsiniz.
Visual C++ Redistributable Runtimes Toplu Paket ve DirectX indirme aracını daha evvel hiç paket heyetimi yapmadıysanız kurmayı deneyebilirsiniz. Başlarda da dediğimiz üzere Windows tüm gerekli olan paketleri varsayılan olarak kurmuyor ve sizin kurmanız gerekebiliyor. Bu durumlarda da Runtimes toplu paketi kurarak tüm Runtimes paketlerini tek seferde kurabilirsiniz.
Runtimes toplu paketini kurmak için öncelikle buraya ilerleyin. ZIP evrakı indikten sonra belgeyi arşivden çıkarın ve içerisindeki install_all.bat belgesini yönetici olarak çalıştırın. BAT evrakı tüm paketleri tek tek sizin için kuracaktır ve sizin yapmanız gereken tek şey ardınıza yaslanıp keyfinize bakmak olacaktır.
DirectX yükleyicisini de indirmek için buraya ilerleyin. İndirdikten sonra açın ve “Install the Bing Bar” seçeneğini devre dışı bırakın. Devamında direkt ileri diyerek konseyimi tamamlayabilirsiniz.
Yine de hatırlatalım, bu bahsettiğimiz paketler sadece daha evvel heyetim yapmamanız durumunda çalışacaktır. Yani sistem DLL paketlerine müdahale ettiyseniz bu yol işe yaramayacaktır, bilginize.
Sonuç olarak bugün Windows’ta 0xc000007b kusurunun tahlilini ve ayrıntılı tahlilini öğrenmiş bulunmaktayız. Yeniden de sorun yaşamanız durumunda Technopat Sosyal‘de 0xc000007b Yanılgı Tahlili kategorisinde kendi bahsinizi oluşturabilirsiniz ve teknik dayanak alabilirsiniz. Yanılgısız günler dileriz.