如何使用node.js中的C ++库?

如何使用node.js中的C ++库?



慕码人2483693
浏览 715回答 3
3回答

慕码人8056858

看一下node-ffi。node-ffi是一个Node.js插件,用于使用纯JavaScript加载和调用动态库。它可用于创建与本机库的绑定,而无需编写任何C ++代码。

噜噜哒

现在对该问题有了新的答案。从版本3.0开始,SWIG似乎为Node.js,Webkit和v8 提供了JavaScript接口生成器。我已经在Java和Python上广泛使用SWIG一段时间了,一旦您了解SWIG的工作原理,就几乎不需要花力气(与ffi或目标语言中的等效语言相比)就可以将C ++代码与SWIG语言连接支持。举一个小例子,假设您有一个标头为myclass.h的库:#include<iostream>class MyClass {&nbsp; &nbsp; &nbsp; &nbsp; int myNumber;public:&nbsp; &nbsp; &nbsp; &nbsp; MyClass(int number): myNumber(number){}&nbsp; &nbsp; &nbsp; &nbsp; void sayHello() {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; std::cout << "Hello, my number is:"&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; << myNumber <<std::endl;&nbsp; &nbsp; &nbsp; &nbsp; }};为了在节点中使用此类,您只需编写以下SWIG接口文件(mylib.i):%module "mylib"%{#include "myclass.h"%}%include "myclass.h"创建绑定文件binding.gyp:{&nbsp; "targets": [&nbsp; &nbsp; {&nbsp; &nbsp; &nbsp; "target_name": "mylib",&nbsp; &nbsp; &nbsp; "sources": [ "mylib_wrap.cxx" ]&nbsp; &nbsp; }&nbsp; ]}运行以下命令:swig -c++ -javascript -node mylib.inode-gyp build现在,从同一文件夹运行节点,您可以执行以下操作:> var mylib = require("./build/Release/mylib")> var c = new mylib.MyClass(5)> c.sayHello()Hello, my number is:5即使我们需要为这样一个小示例编写2个接口文件,也请注意我们不必MyClass在sayHello任何地方提及构造函数或方法,SWIG会发现这些内容并自动生成自然接口。
打开App,查看更多内容
随时随地看视频慕课网APP