我正在尝试将一个外部C++库(我可以访问.so文件以及头文件)集成到我的Node.js应用程序中。
经过大量的研究,我的选择减少到:
从not的gitHub定义中,我无法判断它是否会直接在C++库上工作:
node是一个Node.js插件,用于使用纯JavaScript加载和调用动态库。它可以用于创建到本机库的绑定,而无需编写任何C++代码。
我要问的问题是:
在C/C++方面,我不是专家,所以如果我遗漏了一些基本的东西让你能够回答,请告诉我,这样我就可以改进我的问题了。
发布于 2014-02-25 02:07:34
node似乎主要用于C程序。我在上个星期经历了这个过程,发现节点插件的运气要好得多。您需要做的是在库中的C++代码和node.js之间编写一个空间。在我的例子中,我需要为安全协议对数据包进行编码和解码,所以我制作了包含数据包的节点缓冲区,并编写了从缓冲区中获取数据的C++代码,然后将数据发送到编码和解码数据包的C代码中。
本页:http://luismreis.github.io/node-bindings-guide/docs/returning.html有一些很好的示例,说明如何在C++中从node.js缓冲区中获取数据。
发布于 2016-11-28 03:18:01
发布于 2014-07-09 02:46:19
另一个答案遗漏了什么?我很乐意帮忙。这里的代码示例是用C++编写的。我正在演示人们(使用C或C++创建库)如何定义外部接口供其他人使用。ffi的要点是用任何语言编写包装器(在本例中是javascript),而不是用C/C++ (如节点扩展的情况)编写。如果您的原始库是用于其他事情的共享DLL,那么它已经有了一个接口,您只需要用javascript编写包装器代码来告诉节点它是如何工作的,而不是用C++编写一些东西,然后在本地nodejs库中公开它。
https://stackoverflow.com/questions/18636017
复制相似问题