节点缓冲区为字符数组

我有一个本地的NodeJS插件,它接受一个Buffer实例作为参数之一。

我可以用下面的代码将一个char数组转换成一个Buffer ,但是也可以用另一种方式来查找。

 static v8::Local<v8::Object> create_buffer(char *data, unsigned long length) { node::Buffer *slow_buffer = node::Buffer::New(length); memcpy(node::Buffer::Data(slow_buffer), data, length); v8::Handle<v8::Value> constructor_arguments[3] = { slow_buffer->handle_, v8::Integer::New(length), v8::Integer::New(0) }; v8::Local<v8::Object> global_object = v8::Context::GetCurrent()->Global(); v8::Local<v8::Function> buffer_constructor = v8::Local<v8::Function>::Cast(global_object->Get(v8::String::New("Buffer"))); return buffer_constructor->NewInstance(3, constructor_arguments); } 

也许我晚了,但下面的代码应该工作:

 #include <node.h> #include <node_buffer.h> void Test(const FunctionCallbackInfo<Value>& args) { Local<Object> bufferObj = args[0]->ToObject(); char* bufferData = node::Buffer::Data(bufferObj); size_t bufferLength = node::Buffer::Length(bufferObj); } 

参考: