在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++動態庫中的函數并輸出結果。