C# 调用 dll 出现 The parameter is incorrect 错误

C# 调用 dll 出现 The parameter is incorrect 错误

我遇到的情况是,因为调用的 dll 方法,会接受包含特殊字符的参数,所以在方法的声明部分添加了 CharSet = CharSet.Auto,但是添加后,调用方法时就出现了 “ The parameter is incorrect ” 错误

经过检查,时因为其中一个参数为 int 类型,数值为 260,原本正常的程序,在添加了 CharSet 后就报错,提示 “The parameter is incorrect” (参数不正确),后面把数值改为 0,程序就允许正常了。

如果你遇到的也是这种情况,原来方法运行正常,但是修改了 DllImport 中的 CharSet 后反而报错,那么你就需要去逐一检查和测试,你传递的参数

真正的原因,我目前还没有找到,不过我猜测可能是因为不同 CharSet 对应的类型的字节不一样导致的问题

相关阅读:

C++与C#数据类型对应关系总结

调用 dll 出现 The system cannot find the file specified 错误