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 kusurun nedeni nedir?
0xc000007b yanılgısı, 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 belgelerinde 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 mümkündür.
0xc000007b yanılgısının sebebi, System32 ve SysWOW64 klasörlerine el ile kopyalanan DLL belgeleridir. Gerekli DLL evrakları ö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 kusur elle DLL evrakını indirip evrak 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 evrakı 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 belge sistemi, Kayıt Defteri ve işlem/iş parçacığı aktifliğini gösteren gelişmiş bir izleme aracıdır. Velhasıl işletim sisteminde o an çalışan tüm süreçleri her ayrıntısıyla takip edebilirsiniz. Biz de bu kusurun tahlilinde ProcMon’la uygulamanın bulamadığı ya da erişemediği DLL’leri bulup onları onaracağız.
Process Monitor’le kusur 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 kusur 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 kusur 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 biçimde 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 yanlışa 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 tabirinin ü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 tekrar 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 belgeler el ile kopyalanmış. Makalemizin başında da belirttiğimiz üzere el ile DLL yüklemek tahlil değildir, tersine işleri daha da makus bir hâle sokabilir.
El ile kopyalanan belgeleri kopyalandığı pozisyondan (bu örnekte SysWOW64) siliyoruz. Sonra da sorun çıkaran DLL belgelerinin bulunduğu paketleri kurup belgelerin gereken pozisyona yanlışsız bir formda yerleştirilmesini sağlıyoruz. Hangi evrakın hangi paket ile geldiğini DLL Evrakları Veritabanımızdan öğrenebilirsiniz. Örneğin biz aşağıda göründüğü üzere yanılgının kaynağı olan DLL’imizi tespit edip veritabanından denetim ettik.
Technopat bünyesinde Technopat Toplumsal ismine geliştirilmeye devam eden 0xc000007b yanılgı 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 tıpkı içeriği bizlere belirtiyor.
Technopat botunun verdiklerini uygulamanız sonucunda siz de meselenizi 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 evrakını 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 heyetimi tamamlayabilirsiniz.
Yine de hatırlatalım, bu bahsettiğimiz paketler sırf daha evvel suram 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 yanılgısının tahlilini ve ayrıntılı tahlilini öğrenmiş bulunmaktayız. Yeniden de sorun yaşamanız durumunda Technopat Sosyal‘de 0xc000007b Kusur Tahlili kategorisinde kendi bahsinizi oluşturabilirsiniz ve teknik takviye alabilirsiniz. Yanlışsız günler dileriz.