Я пытаюсь создать обертку node-js для библиотеки C ++ Clip , используя addon api узла (N-NAPI). Я хочу получить изображение из буфера обмена пользователя и передать его в JavaScript в буфере node.js.
Это то, что я пробовал: (только соответствующие части, остальное здесь )
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 ++ и сборкой аддонов узлов.