用golang写了一个python的c shared lib。传入一个 *C.char,返回string,最终报了错 panic: runtime error: cgo result has Go pointer
// export PyTxt2ImageB64
func PyTxt2ImageB64(s *C.char) string {
return Txt2Img(C.GoString(s))
}
看了这篇文章 http://feisky.xyz/2016/04/19/cgo-in-go-1-6/
把代码改成返回*C.char, 在python中设置 lib.PyTxt2ImageB64.restype = ctypes.c_char_p
, 终于不报错了。
//export PyTxt2ImageB64
func PyTxt2ImageB64(s *C.char) *C.char {
return C.CString(Txt2Img(C.GoString(s)))
}