[問題] PInvokeStackImbalance問題

看板C_Sharp (C#)作者 (.)時間13年前 (2012/01/30 17:35), 編輯推噓1(102)
留言3則, 1人參與, 最新討論串1/1
PInvokeStackImbalance was detectedMessage: 對 PInvoke 函式 'libzbar-cil!ZBar.Image::zbar_image_set_data' 的呼叫已使堆疊失去平衡。 這可能是因為 Managed PInvoke 簽章和 Unmanaged 目標簽章不相符。 請確認 PInvoke 簽章的呼叫慣例及參數與目標 Unmanaged 簽章是否相符。 後來追下去後 猜測是載入dll檔 在宣告指標長度上有相容問題? 也發現有人跟我遇到一樣的問題 下面有相關討論 http://jopsen.dk/blog/2011/03/version-0-10-of-zbar-sharp-is-out/ 想請問 ptr指標在32位元和64位元環境上 有沒有什麼相容性該注意的地方? ex.在32位元下開發編譯出dll檔 能否直接拿去給64位元的程式使用? zbar charp版 跑是可以跑 但是在debug模式下都會報錯 忽略錯誤警告訊息的話 一樣可以跑完 得到正確結果 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 60.248.56.181 ※ 編輯: erspicu 來自: 60.248.56.181 (01/30 18:10)

02/01 12:11, , 1F
你是用DLLImport嗎?
02/01 12:11, 1F

02/01 12:12, , 2F
你call的dll如果是用c寫的話,在dllimport那邊加上
02/01 12:12, 2F

02/01 12:12, , 3F
CallingConvention = CallingConvention.Cdecl
02/01 12:12, 3F
文章代碼(AID): #1F9cHFmk (C_Sharp)
文章代碼(AID): #1F9cHFmk (C_Sharp)