C#引入外部非托管類庫時,有時候會出現“對PInvoke函數調用導致堆棧不對稱。原因可能是托管的 PInvoke 簽名與非托管的目標簽名不匹配”的報錯。
通常在DllImport標簽內加入屬性CallingConvention=CallingConvention.Cdecl即可解決該問題。
如:
[DllImport("AutoAnalyse.dll", EntryPoint="Measure", CallingConvention=CallingConvention.Cdecl)]
public static extern string Measure(string baseKey, string project);
