golang 调用 c++ DLL 如何获取 dll 返回的 string 类型值

gouser · · 7053 次点击 · 开始浏览    置顶
这是一个创建于 的主题,其中的信息可能已经有所发展或是发生改变。

我用 golang 调用 c++ dll,调用成功,传值成功(代码省略其他无用的,仅细节代码): ``` inst := syscall.MustLoadDLL("test.dll"); some_func := inst.MustFindProc("test_function"); s1: = "aaa" // 传递参数给 c++ dll s2:= "bbb" // 传递参数给 c++ dll s3:="" // 我希望从这个参数得到返回值 some_func.Call( uintptr(unsafe.Pointer(syscall.StringToUTF16Ptr(s1), uintptr(unsafe.Pointer(syscall.StringToUTF16Ptr(s2) uintptr(unsafe.Pointer(syscall.StringToUTF16Ptr(s3)) ``` 现在在 c++ 的 test_function 里面能够给收到传递过来的数据了,但是,我该如何给 s3 赋值呢?试了很多种办法,s3 的值在 go 这边看不到,不是很懂这个原理,求大神指点。 另外我的要求其实很简单,就是从**参数,或者返回值**能获取到 c++ 返回的**字符串类型**的值(不是 int),求大神帮忙给个办法。 冰天雪地赤身Luo体360°托马斯旋转烧香拜佛跪破膝盖 求解救办法...

有疑问加站长微信联系(非本文作者)

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

7053 次点击  
加入收藏 微博
8 回复  |  直到 2021-09-08 14:10:51
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传