我对C的知识/经验非常有限,但我正在尝试创建一个节点插件,它使用带有C调用的节点缓冲区,该缓冲区的类型为'unsigned char *',但我可以看到节点缓冲区Data方法提供'char *',因此类型不兼容。 E.g。
这是使用c:
调用它的方式int length = 100;
unsigned char buf[length];
int ret = ftdi_read_data(&ftdic, buf, length);
根据我的阅读,要使用节点缓冲区,请执行以下操作:
int length = 100;
node::Buffer *slowBuffer = node::Buffer::New(length);
int ret = ftdi_read_data(&ftdic, node::Buffer::Data(slowBuffer), length);
但是在构建时会返回以下错误:
error: invalid conversion from ‘char*’ to ‘unsigned char*’ [-fpermissive]
int ret = ftdi_read_data(&ftdic, node::Buffer::Data(slowBuffer), length);
是否可以创建一个类型为unsigned chars的节点缓冲区,或者以其他方式实现此目的?
由于
答案 0 :(得分:3)
在你的插件C代码中使用这样的转换:( unsigned char *)node :: Buffer :: Data(slowBuffer)。这是显示的特定错误的常用修复。