美文网首页
在node-webkit中使用ffi报错的问题

在node-webkit中使用ffi报错的问题

作者: 葱花儿大大 | 来源:发表于2016-11-03 16:47 被阅读943次

    一般情况下我们需要用到调试工具debug;我们到官网下载可以用于调试的版本http://nwjs.io/

    下载之后解压等造作参考之前的文章;然后在代码中添加

    var gui = require('nw.gui');

    var win = gui.Window.get();

    win.showDevTools();

    就可以打开调试窗口

    接下来是我们使用ffi的时候除了一点儿错

    在项目中安装ffi

    npm install ffi

    在index.html中的js代码中添加

    var FFI = require('ffi');

    function TEXT(text){

    return new Buffer(text, 'ucs2').toString('binary');

    }

    var user32 = new FFI.Library('user32', {

    'MessageBoxW': [

    'int32', [ 'int32', 'string', 'string', 'int32' ]

    ]

    });

    var OK_or_Cancel = user32.MessageBoxW(

    0, TEXT('I am Node.JS!'), TEXT('Hello, World!'), 1

    );

    添加了这些代码的时候报错,信息大致是在binding.js中加载动态库失败

    3818:0701/012531:INFO:CONSOLE(83)] “Uncaught Error: /tmp/.org.chromium.Chromium.zU7siC/node_modules/ref/build/Release/binding.node: undefined symbol: _ZN2v82V817IsGlobalNearDeathEPPNS_8internal6ObjectE”, source: /tmp/.org.chromium.Chromium.zU7siC/node_modules/ref/node_modules/bindings/bindings.js (83)

    解决方案是在全局先安装nw-gyp

    npm install -g nw-gyp

    然后进行下面的操作

    进入ffi模块运行下面命令 nw-gyp rebuild --target=0.17.5

    进入ref模块运行 nw-gyp rebuild --target=0.17.5

    target是你的nw的版本,查看版本可以直接双击nw.exe右下角会有显示;或者你是下的什么版本就是什么版本,比如你到官网看到的是v0.17.5

    这里的target就是0.17.5

    之后再运行你的项目就可以了

    相关文章

      网友评论

          本文标题:在node-webkit中使用ffi报错的问题

          本文链接:https://www.haomeiwen.com/subject/oyfiuttx.html