寻纯C扩展 node.js 的教程
发布于 11 年前 作者 hackerjs 8317 次浏览 最后一次编辑是 8 年前

不喜欢C++

22 回复

v8 是c++写的,要扩展node.js,得用c++的,纯c不行

朋友推荐你用下 node-ffi ,不过最近我遇到个问题解决不了啦,可以一起交流下

node-ffi 好不好用?

不喜欢C++,那你就不能用addons去扩展了。

总要纠结这些。。。

用c++写一个浅层的壳,用来粘合c与c++代码,至于你的逻辑爱用什么用什么,那么多c的库都能编进c++的程序中,libcurl,jansson等等,你的代码有什么不一样?

@flatpeach 在Windows 7上用 npm install ffi 直接装上了

@leizongmin 恭喜你,我折腾了好久,你装之前本机有Vs环境吗? 我后来试在空操作系统上成功了

@leizongmin 我安装失败时因为ffi安装过程中node-gyp build 出错,跟本地环境有关系

@leizongmin 貌似ffi 只能在64为操作系统中使用,我测试的环境Win2008R2 X64

说的有道理,严重同意。需要用C/C++的基本都是计算密集型的,把那点c++当个封装手段。。

@flatpeach 装VC++是必须的啊,node-gyp怎么能少了这个呢。 Win7 32位

简单的看了下 node-ffi, 感觉简单的方法调用还可以, 不知道涉及到类, 对象 该怎么用, 还是就跟本不支持.

@leizongmin @flatpeach linux 64bit和win7 64bit都安装成功了,也跑通example了 不过这个ffi是给谁用的呢?有什么适用场景吗?

@snoopy 看文档是支持js直接掉用c++的方法, 但没试过

@panawang 是调用C编译成的动态链接库, 当然C++里extern "C"暴露出C的接口也可以, 原生的C++函数会被编译器改名,ffi没办法直接调用

其实node-ffi原理和node-gyp 一样的,目前已知:node-ref解决pointer、buffer没问题,ref-array 解决数组 ,类的使用目前还没有测试

@snoopy 有些功能使用C的开源软件或者一些功能需要C实现简单,client如果是nodejs ,那么用ffi挺方便的

@snoopy 在Windows下,可以调用.dll文件,直接操作Win32 API。。。可以用来开发Windows桌面程序了

说的有道理, 我就是用C++做壳。里面的代码大部分是是C的

@leizongmin @flatpeach @whatsmynick 明白了,不过利用node的addon插件也能达到一样的效果吧?这里是可以直接调用c的方法,不是c++。

回到顶部