最近使用 C# 調用 dll 中的方法,本來允許的好好的,
不過因為后面為了兼容不同的文件路徑,就在標注上添加了 CharSet = CharSet.Auto,
添加后,方法一調用就報錯,提示 “The parameter is incorrect” (該參數不正確)。
既然系統提示參數不正確,那肯定時傳遞的參數出問題了,
我遇到的問題是,其中一個參數為 int 類型,數值為 260,后面把數值改為 0 就可以正常運行了。
我猜測是添加了 CharSet = CharSet.Auto, int 類型所占的寬度不一樣了,所以原來運行正常的方法會報錯。
這個問題的真正原因我目前沒有找到,不過如果你們遇到相同的問題時,我給的建議是:
1.如果方法參數中有 int 類型的,優先檢查;
2.逐個參數測試,傳入一些特殊或者邊界的值去測試,找出造成問題的那個參數,然后嘗試更換參數的值;
3.上 StackOverflow.com 去找答案