从具有参数 const int16_t *bar 的 NodeJS 调用 cpp 函数但得到错误未绑定类型

问题描述

我正在尝试从 NodeJS 调用 CPP 函数

typedef struct foo {

    uint8_t     *data;
    int         dataSize;

} foo ;

foo *ExtractBar(const int16_t *bar);

我在 NodeJS 中尝试过 nbind 库。但得到未绑定的类型错误

uint16 = Int16Array.from('12345');
uint16.fill(0);
lib.ExtractBar(uint16);

我也尝试过 ffi-napi npm 模块。但从中我得到了分段错误错误。 任何人都可以帮助我了解如何从 NodeJS 代码传递正确的参数。 我不知道如何在 NodeJS 中创建类似的结构-

const int16_t *bar

解决方法

通常你必须有一个变量的引用,因为 JavaScript 是一种垃圾收集语言。

Specifically to nbind,have a look at thisthis。您想从 NodeJS 传递一个 uint16 缓冲区,以便您可以使用 nbind::Buffer