C#的DLL函数要传递一个byte[]型参数,go使用uintptr(unsafe.pointer(&p))传参, p为一个长度16字节的[]byte,函数调用时报参数错误问题。
更多评论
<a href="/user/sanrentai" title="@sanrentai">@sanrentai</a> 谢谢,问题已解决。使用BytePtrString把字符串转换成[]byte就OK了
#2
<a href="/user/sanrentai" title="@sanrentai">@sanrentai</a> 已找到解决办法了,先要做一下转换,示例
aPin, _ := syscall.BytePtrFromString(newPin) //此转换实现传给DLL以空结尾
再做一下转换,调用成功了。
uintptr(unsafe.Pointer(aPin))
#3