背景: 本人 Javer,Go 只是新手,使用 Go 打包 dll 给 C#/Java 调用.
export 的方法大概如下:
//export GmDecrypt
func GmDecrypt1(dataStrC *C.char, privateKeyC *C.char) *C.char {
x := C.CString("xxx")
defer C.free(unsafe.Pointer(x))
return x
}
发现在 C#/Java 中调用后获取到的值是乱码,猜测可能是C.free(unsafe.Pointer(x))导致的.
有什么好的处理方法吗?