Node.js 6 addon将Buffer.from()转换为const UInt8 *

嘿,我知道人们问过这个问题之前,无论出于何种原因,典型的答案不适合我。 基本上我有一个无符号的字节数组:

var message = Buffer.from([ 0x27, 0x52, 0x00, 0x8E ]) myAddon.test(message); 

在我的C ++模块中,我需要将ByteBuffer变成一个const UInt8 *数据结构。

我的代码目前是:

 #include <node.h> using v8::FunctionCallbackInfo; using v8::Isolate; using v8::Local; using v8::Object; using v8::Value; using v8::Exception; void test(const FunctionCallbackInfo<Value>& args) { Isolate* isolate = args.GetIsolate(); if (!args[0] ->IsObject()) { isolate -> ThrowException(Exception::TypeError( v8::String::NewFromUtf8(isolate, "All arguments must be string") )); return; } Local<Object> bufferObj = args[0]->ToObject(); const UInt8* d = (const UInt8*)node::Buffer::Data(bufferObj); 

这只是演示问题的代码。 现在最新发生的是,缓冲区是我得到的错误:名称空间“节点”中没有名为“缓冲区”的成员。 所以当我看到人们从字节缓冲区中提取数组的例子时,我感到困惑。 是否还需要导入另一个头文件或库?

谢谢

确保你已经包含<node_buffer.h> 。 否则,这是正确的。

另请参见: 节点缓冲区到字符数组