【发布时间】:2020-11-29 12:58:25
【问题描述】:
我正在尝试使用node-addon-api 从char 的vector 创建一个新的Buffer,但生成的Buffer 的内容总是与vector 不同。这是我的 cpp 代码:
#include <napi.h>
Napi::Value GetBuffer(const Napi::CallbackInfo& info) {
Napi::Env env = info.Env();
std::vector<char> v{0x10, 0x11, 0x12};
return Napi::Buffer<char>::New(env, v.data(), v.size());
}
Napi::Object Init(Napi::Env env, Napi::Object exports) {
exports.Set(Napi::String::New(env, "getBuffer"), Napi::Function::New(env, GetBuffer));
return exports;
}
NODE_API_MODULE(addon, Init);
这是我的js代码:
const addon = require('./build/Release/addon');
const buffer = addon.getBuffer();
console.log(buffer.toString("hex")); // The output is different every time, instead of being 101112
结果缓冲区的内容总是不同的,为什么?怎么弄好?
【问题讨论】:
标签: javascript c++ node.js node-gyp node-addon-api