【问题标题】:v8 node buffer of unsigned chars无符号字符的 v8 节点缓冲区
【发布时间】:2015-02-09 19:00:07
【问题描述】:

我对 C 的知识/经验非常有限,但我正在尝试创建一个节点插件,它使用带有 C 调用的节点缓冲区,该 C 调用期望缓冲区的类型为“无符号字符 *”,但据我所知节点缓冲区数据方法提供了一个“char*”,因此类型不兼容。例如

这就是使用 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);

是否可以创建无符号字符类型的节点缓冲区,或者以其他方式实现?

谢谢

【问题讨论】:

    标签: c node.js v8 add-on


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 2010-10-13
      • 2016-03-09
      • 1970-01-01
      • 2019-09-26
      • 1970-01-01
      • 2016-09-23
      • 2012-01-18
      • 1970-01-01
      相关资源
      最近更新 更多