在Node.js中,可以使用node-ffi
模块来调用C++动态库。
以下是一个使用node-ffi
调用C++动态库的示例:
首先,确保已安装node-ffi
模块:
npm install ffi
然后创建一个JS文件,比如app.js
,在该文件中编写调用C++动态库的代码:
const ffi = require('ffi');
// 创建一个FFI对象,指定C++动态库的路径
const mylib = ffi.Library('./mylib.so', {
// 定义需要调用的C++函数
'add': ['int', ['int', 'int']]
});
// 调用C++函数
const result = mylib.add(2, 3);
console.log(result);
上述代码中,ffi.Library()
函数用于加载C++动态库,并指定需要调用的函数的签名。'./mylib.so'
是C++动态库的路径,'add'
是C++函数的名称,['int', ['int', 'int']]
是函数的返回类型和参数类型。
然后,编译并生成C++动态库,比如将以下C++代码保存为mylib.cpp
:
extern "C" {
int add(int a, int b) {
return a + b;
}
}
使用以下命令编译生成C++动态库mylib.so
:
g++ -shared -o mylib.so mylib.cpp
最后,在终端中运行node app.js
命令,即可调用C++动态库中的函数并输出结果。