C# DllImport 方法,出現 The parameter is incorrect 錯誤


最近使用 C# 調用 dll 中的方法,本來允許的好好的,
不過因為后面為了兼容不同的文件路徑,就在標注上添加了 CharSet = CharSet.Auto,

添加后,方法一調用就報錯,提示 “The parameter is incorrect” (該參數不正確)。

既然系統提示參數不正確,那肯定時傳遞的參數出問題了,
我遇到的問題是,其中一個參數為 int 類型,數值為 260,后面把數值改為 0 就可以正常運行了。

我猜測是添加了 CharSet = CharSet.Auto, int 類型所占的寬度不一樣了,所以原來運行正常的方法會報錯。

這個問題的真正原因我目前沒有找到,不過如果你們遇到相同的問題時,我給的建議是:
1.如果方法參數中有 int 類型的,優先檢查;

2.逐個參數測試,傳入一些特殊或者邊界的值去測試,找出造成問題的那個參數,然后嘗試更換參數的值;

3.上 StackOverflow.com 去找答案


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM