不喜欢C++
v8 是c++写的,要扩展node.js,得用c++的,纯c不行
朋友推荐你用下 node-ffi ,不过最近我遇到个问题解决不了啦,可以一起交流下
https://github.com/rbranson/node-ffi
node-ffi 好不好用?
不喜欢C++,那你就不能用addons去扩展了。
总要纠结这些。。。
用c++写一个浅层的壳,用来粘合c与c++代码,至于你的逻辑爱用什么用什么,那么多c的库都能编进c++的程序中,libcurl,jansson等等,你的代码有什么不一样?
@flatpeach 在Windows 7上用 npm install ffi 直接装上了
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++。
node-ffi 可以支持自定义对象,https://github.com/TooTallNate/ref-struct