将 Node.js 缓冲区传递给 C++ 插件

Pass Node.js Buffer to C++ addon

test.js

buf = new Buffer(100);
for (var i = 0; i < 100; i++) buf[i] = i
addon.myFync(buf);

addon.cpp

Handle<Value> set(const Arguments& args) {
    char *buf = SOMETHING(args[0]);
    return Undefined();
}

如何在C++函数中获取指向缓​​冲区数据的指针?

我应该写什么来代替 SOMETHING(args[0])

我在我的编辑器中打开了 node_buffer.h,但我无法理解。

节点版本=v0.10.29

根据 node.js node binding documentation 可以访问 'arg[0]' 值参数:

String::AsciiValue v(args[0]->ToString());

你可以这样做:

char* buf = node::Buffer::Data(args[0]);

直接访问Buffer的字节。