對PInvoke函數函數調用導致堆棧不對稱。原因可能是托管的 PInvoke 簽名與非托管的目標簽名不匹配。


C#引入外部非托管類庫時,有時候會出現“對PInvoke函數調用導致堆棧不對稱。原因可能是托管的 PInvoke 簽名與非托管的目標簽名不匹配”的報錯。

通常在DllImport標簽內加入屬性CallingConvention=CallingConvention.Cdecl即可解決該問題。

如:     
  [DllImport("AutoAnalyse.dll", EntryPoint="Measure", CallingConvention=CallingConvention.Cdecl)]  
       public static extern string Measure(string baseKey, string project);


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM