我用 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°托马斯旋转烧香拜佛跪破膝盖 求解救办法...
有疑问加站长微信联系(非本文作者)