如何在node-webkit中调用dll

       最近在研究nodejs和node-webkit,需要在node-webkit应用中调用dll ,折腾了好久,遇到不少麻烦,国内没怎么介绍具体方法,就将这几天的研究成果说明下,希望对后来人有用。

(  图片粘贴不了,我把教程和涉及到的软件都上传到下面的链接去了)

说明:本文档主要说明如何通过nodejs中的ffi和ref模块来调用c的dll文件,并使node-webkit可以调用dll(涉及的软件已全部打包,可以到下面的链接去下载 :http://download.csdn.net/detail/aichikaochang/7000791 )。

 

 

1 安装nodejs,在http://nodejs.org/download/上下载32位的.msi文件,直接安装,如下所示(版本号为0.10.26):


将安装后的目录添加的环境变量中,如:D:\Program Files\nodejs (主要目的是使该目录下的node.exe可以在命令行中运行)。

 

2 安装python2.7版本,并设置环境变量。

 

3 下载node-webkit压缩文件,版本为0.8.4 。

 

4 安装node-gyp和nw-gyp ,这个node-gyp将c文件编译成nodejs的包的编译工具,nw-gyp是将c文件编译成node-WebKit的包的编译工具,具体安装方法如下:

      进入cmd命令模式,输入npm install node-gyp 即可

      再次输入 npm install nw-gyp即可

 

5 安装ffi和 ref模块,并重新编译成node-webkit可用的包,具体如下:

  在命令行模式中输入:

    npm install ffi

      npm installref

这样会在本用户目录下生成node_modules文件夹,里面内容如下:



命令行模式进入到此目录下



下面通过nw-gyp来将ffi和ref模块重新编译。




由于ffi中包含ref模块,所以要先将ffi模块中的ref先编译,然后再将ffi编译,如下:



注意:编译命令一定要在含有package.json文件的目录下运行,命令后的—target=0.8.4是针对node-webkit的版本的,如果不是这个版本,需要改成自己的版本。最后将ref模块编译下即可。

 

6 编辑项目的package.json文件,此文件主要是node-webkit调用你的应用的配置文件,需要在里面添加

"webkit": {

   "plugin": true

 }    此选项说明你的应用需要调用第三方包,也就是node_modules/ 目录下的ffi和ref包,一个例子如下:


 

7下面通过一个例子来说明如何在js中调用dll :

 


具体ref模块怎么用,可以参考这个 http://tootallnate.github.io/ref/#exports-refType

 

8 最后将你的应用包括node_modules和你需要调用的dll一起压缩打包,压缩方式必须是z7(通过好压或其他压缩软件,只要后缀名是.zip的应该都可以),压缩后的文件后缀名必须是.nw,然后将该文件拷贝到node-webkit的目录下,拖进nw.exe即可执行。

 

9 注意: 由于ffi模块是为C语言的dll包服务的,所以你自己编写的dll必须要有 extern “C” 来修饰 。

                                                        

 


阅读更多
文章标签: nodejs node-webkit
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭
关闭