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