我正在尝试在 Go 中为我的 OpenGL 项目编写屏幕截图函数,我正在使用此处找到的 OpenGL 绑定:https://github.com/go-gl/glow这是我用来制作屏幕截图的代码,或者,这就是我正在处理的: width, height := r.window.GetSize() pixels := make([]byte, 3*width*height) // Read the buffer into memory var buf unsafe.Pointer gl.PixelStorei(gl.UNPACK_ALIGNMENT, 1) gl.ReadPixels(0, 0, int32(width), int32(height), gl.RGB, gl.UNSIGNED_BYTE, buf) pixels = []byte(&buf) // <-- LINE 99这会在编译时触发以下错误:video\renderer.go:99: cannot convert &buf (type *unsafe.Pointer) to type []byte.如何转换unsafe.Pointer为字节数组?
2 回答
RISEBY
TA贡献1856条经验 获得超5个赞
由于unsafe.Pointer已经是一个指针,所以不能使用指向 的指针unsafe.Pointer,但应该直接使用它。一个简单的例子:
bytes := []byte{104, 101, 108, 108, 111}
p := unsafe.Pointer(&bytes)
str := *(*string)(p) //cast it to a string pointer and assign the value of this pointer
fmt.Println(str) //prints "hello"
- 2 回答
- 0 关注
- 342 浏览
添加回答
举报
0/150
提交
取消