首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从C++ ( Node.js /node)调用Node.js库

从C++ ( Node.js /node)调用Node.js库
EN

Stack Overflow用户
提问于 2013-09-05 12:13:23
回答 4查看 18.4K关注 0票数 10

我正在尝试将一个外部C++库(我可以访问.so文件以及头文件)集成到我的Node.js应用程序中。

经过大量的研究,我的选择减少到:

  1. 编写节点加号
  2. 使用节点-ffi

从not的gitHub定义中,我无法判断它是否会直接在C++库上工作:

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

我要问的问题是:

  • 选项1)是否意味着以某种方式重写外部C++库?
  • 节点-ffi可以直接调用C++库,而无需编写任何C包装器吗?

在C/C++方面,我不是专家,所以如果我遗漏了一些基本的东西让你能够回答,请告诉我,这样我就可以改进我的问题了。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 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缓冲区中获取数据。

票数 7
EN

Stack Overflow用户

发布于 2016-11-28 03:18:01

尼丁现在使使用外部C++库编写Node.js加载项变得更加容易。您基本上创建了一个新的源文件,包括库头、nbind头和一些宏调用,列出了库的类和方法。然后nbind处理剩下的部分。

libui节点是一个实际的例子,它使用nbind调用利布伊,从Node.js生成本机小部件的用户界面。还有一个短教程如何为vg创建绑定,一个与生物信息学相关的C++库。

票数 3
EN

Stack Overflow用户

发布于 2014-07-09 02:46:19

另一个答案遗漏了什么?我很乐意帮忙。这里的代码示例是用C++编写的。我正在演示人们(使用C或C++创建库)如何定义外部接口供其他人使用。ffi的要点是用任何语言编写包装器(在本例中是javascript),而不是用C/C++ (如节点扩展的情况)编写。如果您的原始库是用于其他事情的共享DLL,那么它已经有了一个接口,您只需要用javascript编写包装器代码来告诉节点它是如何工作的,而不是用C++编写一些东西,然后在本地nodejs库中公开它。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18636017

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档