dll := syscall.MustLoadDLL("hik_client.dll")
callback := syscall.NewCallback(func(r uintptr, size int) (ret uintptr) {
// 定义一个[]byte切片,用来存储C返回的字符串
data := make([]byte,size)
C.memcpy(unsafe.Pointer(&data[0]), unsafe.Pointer(r), C.size_t(size))
err := conn.ws.WriteMessage(2, data)
if err != nil {
fmt.Printf("conn.WriteMessage ERROR!!!\n")
}
runtime.Gosched()
return 0
})
var filename string
filename = "rtsp://admin:sbdwl123@192.168.25.45:554/h264/ch1/main/av_stream"
procGreet := dll.MustFindProc("byte_url")
procGreet.Call(uintptr(unsafe.Pointer(syscall.StringBytePtr(filename))), callback)