我正在尝试使用 Go 与 Windows dll 进行交互。我要使用的 dll 函数接受一个指向字节数组的指针。因此我需要给它那个字节数组。
我正在使用 syscall调用 dll 的库,如图所示 here .我的基本要求是:
- 我得到了字节数组所需的大小
- 我创建字节数组
- 我必须得到一个指向字节数组的指针
- 然后我将指针传递给 Windows dll
我不知道如何在 go 中创建字节数组,并获取指向它的指针。这显然是一个不安全的操作,unsafe库可能会有帮助,但我需要首先创建一个动态长度字节数组。使用“make”创建 slice 对我没有帮助,除非我可以获得指向 slice 支持数组的指针。
有没有其他人遇到过这个或有任何想法?
最佳答案
我认为 syscall.ComputerName 实现 https://golang.org/src/syscall/syscall_windows.go#395将是一个很好的例子。它使用 uint16s,而不是字节,否则......
在您的情况下,它将是 ptr := &myslice[0]
。
亚历克斯
关于arrays - 戈朗 : unsafe dynamic byte array,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19721008/