Son Konu

0xc000007b Hatası Nasıl Çözülür? %100 Başarılı Yöntem!

seocu

Yeni Üye
Katılım
9 Ocak 2022
Mesajlar
153,414
Tepkime
0
Puanları
36
Yaş
35
Credits
0
Geri Bildirim : 0 / 0 / 0
imodifier

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 yanılgının nedeni nedir?

0xc000007b yanlışı, 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.

0xc000007b-Hata-Goruntusu.jpg


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 yanılgısının 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 kusur, 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 belge pozisyonuna atmaktır ama 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 evrakı hâlâ sistemde heyetiyse yeni DLL evrakı yüklenmez. Pekala kusurun kaynağı olan DLL’i nereden buluruz? Doğal ki de Process Monitor kullanarak.

Process Monitor nedir ve ne işe fayda?


Process Monitor, bir öteki 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. Hülasa 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 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.
Procmon-highlight.jpg
Process Monitor’de highlight özelliğini seçili durum için etkinleştirme.
Gördüğünüz üzere süreç öncesinde hiçbir vurgulama yokken süreç sonrası muhtaçlığımız olan tüm içerikler vurgulanmış bir halde karşımıza çıkıyor.

procmon-highlighted.jpg


Process Monitor ile kusur 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 yanılgı 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 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.
hata-kaynagi.jpg
Görselde Thread Exit’in çabucak birkaç süreç öncesindeki NAME NOT FOUND çıktıları yer almakta. Okla gösterilen DLL’ler sorunun kaynağı.
Gördüğünüz üzere MSVCP140.dll ve VCRUNTIME140.dll evrakları Windows alt klasörleri tarafından bulunamamış. Ancak 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 evrakları 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, tersine 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 evrakların gereken pozisyona yanlışsız bir halde 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 kusurun kaynağı olan DLL’imizi tespit edip veritabanından denetim ettik.
DLL-Veritabani-arastirmasi-sonucu-indirilecek-DLL-paketi.jpg
DLL veritabanından kusurun kaynağı olan DLL’e ilişkin bileşen paketini (2013 ve 2015 paketlerini) indiriyoruz.
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 Yanılgı Tahlili kategorisinde en üstte bulunan “Yeni analiz” seçeneğini seçiyoruz.
Yeni-Analiz.jpg
0xc000007b kategorisinde üst taraftan Yeni tahlil diyoruz.
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.
Sosyal-analiz-sayfasi.jpg
Technopat Toplumsal 0xc000007b yanılgı tahlil sayfası.
analizi-yukle.jpg
Analiz sayfasının örnek kullanımı.
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.
0xc7b-bot-cozum-onerisi.jpg
Gördüğünüz üzere 0xc000007b tahlili bizim de bulduğumuz sonuçları verdi.
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 suramı 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 belgesi indikten sonra belgeyi arşivden çıkarın ve içerisindeki install_all.bat evrakını yönetici olarak çalıştırın. BAT belgesi 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 yanlışı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 dayanak alabilirsiniz. Yanlışsız günler dileriz.
 
Üst Alt