我正在尝试使用节点插件 api (N-NAPI)为 C++ 库Clip构建一个node-js 包装器。我想从用户的剪贴板中检索图像并将其传递给 node.js 缓冲区中的 JavaScript。
这是我尝试过的:(只有相关部分,其余部分在这里)
Napi::Object get_image(const Napi::CallbackInfo& args) {
Napi::Env env = args.Env();
clip::image img;
clip::get_image(img);
clip::image_spec spec = img.spec();
char *pixels = img.data();
// since I dont know the length of pixels I use the width * height of the image
Napi::Buffer<char> img_buffer = Napi::Buffer<char>::New(env, pixels, spec.width * spec.height);
return img_buffer;
}
这编译得很好,但是当我尝试在 JavaScript 中使用它时,它会生成一个Segmentation fault (core dumped)
.
示例 JS 代码:
const clip = require('bindings')('node_clip_wrapper')
console.log(clip.getImage())
我该如何解决这个问题?如果我遗漏了一些基本的东西,请原谅,我对 C++ 和构建节点插件非常陌生。