Node.jsでC++の動的ライブラリを呼び出す方法

ノード.jsでは、ノード.js-ffiモジュールを使用してC++の動的リンクライブラリを呼び出すことができます。

Node-ffiを使用してC++ダイナミックライブラリを呼び出す方法を示します。

最初に node-ffi モジュールのインストールをする。

npm install ffi

App.jsなどの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++の動的ライブラリ内の関数が利用され出力が表示されます。

bannerAds