go dll char* memcpy

举报
风吹稻花香 发表于 2021/06/04 23:34:32 2021/06/04
【摘要】     dll := syscall.MustLoadDLL("hik_client.dll") callback := syscall.NewCallback(func(r uintptr, size int) (ret uintptr) { // 定义一个[]byte切片,用来存储C返回的字符串 data := make([]byte,si...

 

 


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

 

文章来源: blog.csdn.net,作者:网奇,版权归原作者所有,如需转载,请联系作者。

原文链接:blog.csdn.net/jacke121/article/details/88416607

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。