作者erspicu (.)
看板C_Sharp
標題[問題] PInvokeStackImbalance問題
時間Mon Jan 30 17:35:08 2012
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)
推 howardgod:你是用DLLImport嗎? 02/01 12:11
→ howardgod:你call的dll如果是用c寫的話,在dllimport那邊加上 02/01 12:12
→ howardgod:CallingConvention = CallingConvention.Cdecl 02/01 12:12