go语言和C语言不同,无法直接通过( *_Ctype_char)的方式进行强制类型转换。
但是可以通过 unsafe.Pointer 进行进行指针类型的转换。
示例如下:
var ret C.int = 0
var key string = "1234567811111111"
var inData string = "1111111122222222"
//对应C语言中的void*
var pContext unsafe.Pointer
var nKeynum C.int = 1
//将go语言中的string转换成*C.char类型
var pKey = (C.CString(key))
var nKeyLen = C.uint(len(key))
var pInData = C.CString(inData)
var nInDataLen = C.uint(len(inData))
var pOutData *C.uchar
var pOutDataLen *C.uint
//将*C.char转换成*C.uchar类型
var pKey2 = (*C.uchar)(unsafe.Pointer(pKey))
var pInData2 = (*C.uchar)(unsafe.Pointer(pInData))
如果对您有帮助,请点个赞吧。