Есть (динамическая) библиотека C++ с таким содержимым:
// main.cpp
#include <iostream>
#include <vector>
extern "C"
{
// A function adding two integers and returning the result
int SampleAddInt(int i1, int i2)
{
return i1 + i2;
}
std::vector<int> Addition(int v)
{
std::vector<int> x = {1, 2, 3};
return x;
}
}
Нужно подключить и использовать функции из нее в модуле Node.js.
var ref = require('ref');
var ffi = require('ffi');
var testlib = ffi.Library('/home/anton/Documents/CodeBlocks_projects/testlib/bin/Release/liblibtestlib.so', {
'SampleAddInt': [ 'int', [ 'int', 'int' ] ],
'Addition': [ ref.refType(ref.types.void), [ 'int' ] ]
});
console.log(testlib.SampleAddInt(5, 9));
console.log(testlib.Addition(5));
В консоле получаю:
14
Segmentation fault (core dumped)
Первая функция отрабатывает; вторая, соответственно, нет. Как правильно объявить тип vector
, используя пакет ffi
? Желательно не меняя кода самой библиотеки.
Либо подскажите любой другой вариант подключения билиотек.
Виртуальный выделенный сервер (VDS) становится отличным выбором
Как используя функцию _getch() реализовать(задание с калькулятором из института): 1) вводим 1, потом 2, потом 3 и тд
Пытаюсь написать бота для GoodGame, для этого надо подключиться к websocketПытался сделать через boost::asio, но ничего не вышло
Имеется плюсовая библиотекаИ требуется написать обёртку к парочке ее функций
Код приведенный ниже выполняет сложение 2 массивов которые являются двоичными числамиДолго думал над данным кодом, но что-то пошло не так