咨询个go编译DLL并调用的报错的问题

hellsam · · 3063 次点击
jan-bar
想要拥有,必定付出。
找到一个类似问题 [点击跳转](https://stackoverflow.com/questions/66141445/import-dll-which-build-from-go-and-runtime-error) ,这个人用go生成dll,python调用没毛病,Go调用就报错。 我还找到了一个本站别的 [帖子](https://studygolang.com/topics/11897) 也没解决。 还找到这篇 [文章](https://www.jianshu.com/p/907ade8993a9),里面重点是 `通俗点说就是我Go语言的指针你们其他语言别想用!`,但是我还是不清楚具体问题。 我还是放弃追查这个问题了,感觉就是Go有GC的问题,封装成dll,申请堆内存后GC应该会有协程去释放对象导致的吧。用无GC语言编写的dll应该没问题,个人猜测。
#6
更多评论
jan-bar
想要拥有,必定付出。
我怀疑`syscall.StringToUTF16Ptr`用的不对,改为`syscall.StringBytePtr`试试看。前者转换的结果是双字节数据,和`*C.char`内存布局不同。
#1
刚试了 也不行
#2