C#調用C++動態庫時出錯的解決方法

在C#工程中調用C++寫的動態庫,運行時出現瞭如下描述的錯誤:
其他信息: 對 PInvoke 函數“WindowsFormsApplication1!WindowsFormsApplication1.Form1::check_sn”的調用導致堆棧不對稱。原因可能是託管的 PInvoke 簽名與非託管的目標籤名不匹配。請檢查 PInvoke 簽名的調用約定和參數與非託管的目標籤名是否匹配。

解決辦法:
在dllimport中加入CallingConvention參數就行了,[DllImport(PCAP_DLL, CharSet = CharSet.Auto, CallingConvention = CallingConvention.Cdecl)]

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章