我正在尝试将C库导入我的C ++项目中,但是我被这个错误所困扰
从'void *'到'const uint8_t * {aka const unsigned char *}'的无效转换'[-fpermissive] uint8_t const * raw = static_cast(getPointerToData(id,message-> data,message-> length)); ^ 编译由于-Wfatal-errors而终止。
此代码可以使用C编译器很好地编译,但是使用C ++一个可以得到此错误
iglob()
你能帮我吗?
谢谢
答案 0 :(得分:0)
您需要将返回值从getPointerToData显式转换为const uint8_t*
。指针类型之间的隐式转换在C ++中是不允许的,但在C中是不允许的。
尝试:
uint8_t const* raw = static_cast<uint8_t const*>(getPointerToData(id, message->data, message->length));
编辑: 如果要保留C代码而不是C ++,也可以使用C样式强制转换。
uint8_t const* raw = (uint8_t const*)(getPointerToData(id, message->data, message->length));
答案 1 :(得分:0)
Jean-FrançoisFabre发布的此代码
uint8_t const* raw = (getPointerToData(id, static_cast<const uint8_t*>(message->data), message->length));
谢谢!