golang报错: cannot use pKey (type *_Ctype_char) as type *_Ctype_uchar in assignment

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))

 

 

如果对您有帮助,请点个赞吧。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值