v8节点缓冲区的无符号字符

时间:2014-12-11 10:19:40

标签: c node.js v8 add-on

我对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的节点缓冲区,或者以其他方式实现此目的?

由于

1 个答案:

答案 0 :(得分:3)

在你的插件C代码中使用这样的转换:( unsigned char *)node :: Buffer :: Data(slowBuffer)。这是显示的特定错误的常用修复。