.\trade_demo.go:46:12: cannot use (_Cfunc_CString)("40219724") (value of type *_Ctype_char) as _Ctype_TThostFtdcUserIDType value in struct literal
时间: 2023-06-26 17:10:10 浏览: 108
habfo.rar_数学计算_C/C++_
这个错误的原因是你试图将一个 C 语言中的字符串类型 `_Ctype_char` 直接赋值给了一个结构体中的 `TThostFtdcUserIDType` 类型的变量,这样会导致类型不匹配的错误。
解决方法是将 C 字符串转换为对应的类型,可以使用 `C.CString` 函数将 Go 语言中的字符串转换为 C 语言中的字符串类型,例如:
```
userID := C.CString("40219724")
defer C.free(unsafe.Pointer(userID))
reqData.UserID = (*C.char)(userID)
```
这里我们首先使用 `C.CString` 函数将 Go 语言中的字符串类型 `"40219724"` 转换为 C 语言中的字符串类型,并且在函数结束后使用 `C.free` 函数释放 C 字符串的内存。然后将转换后的 C 字符串类型赋值给 `reqData.UserID` 变量。注意要使用 `(*C.char)` 将 `userID` 转换为指向 `char` 类型的指针。
阅读全文