Derinlemesine yazılım eğitimleri için kanalımı takip edebilirsiniz...

C#’ta Managed Debugging Assistant ‘PInvokeStackImbalance’ Hatası ve Çözümü

Merhaba,

C# ile Win32 Apilerini kullanarak çalıştığınız projenizde ansızın “Managed Debugging Assistant ‘PInvokeStackImbalance’” hatasıyla karşılaşabilirsiniz. Bu hatamızın temel sebebi projemizin sistem türü olan bit tercihidir.

Öncelikle ilgili hatanın metinsel halini şöyle bir görelim;

Managed Debugging Assistant ‘PInvokeStackImbalance’ : ‘PInvoke İşlevi ‘XXX’ çağrısı yığının dengesini bozdu. Yönetilen PInvoke imzası yönetilmeyen hedef imzasıyla eşleşmediğinden bu durum olasıdır. PInvoke imzasının çağrı kurallarının ve parametrelerinin hedef yönetilmeyen imzayla eşleştiğinden emin olun.’ Hatası ve Çözümü

Hatamızın görsel halini de aşağıdaki ekran görüntüsünden inceleyebilirsiniz.

C#'ta Managed Debugging Assistant 'PInvokeStackImbalance'

Bu hatanın temel sebebi, yazımızın girişinde de bahsettiğimiz gibi projenin tercih ettiği sistem türüyle alakalıdır. O halde projemizin sistem türü tercihini değiştirmemiz bu hatayı ortadan kaldıracaktır.

Visual Studio editörünün Solution Explorer penceresinde ilgili projeye sağ tıklayarak “Properties” -> “Build” kombinasyonunu açınız. İlgili pencerede aşağıdaki ekran görüntüsünde görüldüğü üzere “Prefer 32-bit” yazan kutucuğun onayını kaldırınız.

C#'ta Managed Debugging Assistant 'PInvokeStackImbalance'
Bu işlem neticesinde projenizi derleyip çalıştırdığınızda hatanın ortadan kalktığını göreceksiniz.

Haydi geçmiş olsun 🙂

Sonraki yazılarımda görüşmek üzere…
İyi çalışmalar…

Bunlar da hoşunuza gidebilir...

1 Cevap

  1. Mehmet Y. dedi ki:

    Çok teşekkürler. Bu paylaşım faydalı oldu. Visual studio 2022 de hata ayıklama özellikleri -> Derleme altında.

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir