文档章节

nw环境下调用本地dll文件

Flex_学者
 Flex_学者
发布于 2016/10/14 14:40
字数 235
阅读 212
收藏 3

1. 全局安装nw-gyp模块

npm install -g nw-gyp
npm config set python python2.7
npm config set msvs_version 2015

前提是系统中已经安装了python2.7Visual Studio 2015

2. 安装ffi模块

npm install ffi

3. 对ffi模块进行重新编译


cd node_modules/ref
nw-gyp rebuild --target=0.15.1 --arch=x64

cd node_modules/ffi
nw-gyp rebuild --target=0.15.1 --arch=x64

target:nw的版本

arch:系统位数(x64或ia32)

示例代码:

var ref = require('ref');
console.log("require('ref')! ");
		
var ffi = require('ffi');
console.log("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 result = user32.MessageBoxW(0, TEXT('I am Node.JS!'), TEXT('Hello, World!'), 1);
console.log("result:: ", result);

以上测试运行环境:

1. 系统:win10(64位)

2. NW: 0.15.1(64位)

3. node.js: 6.1.0(64位)

 参考资料:

1. NW.js的API http://docs.nwjs.io/en/latest/For%20Users/Advanced/Use%20Native%20Node%20Modules/

2. nw-gyp https://github.com/nwjs/nw-gyp

3. nodejs调用dll/so文件的方法 https://cnodejs.org/topic/5413945d8895083262b77401

© 著作权归作者所有

Flex_学者
粉丝 4
博文 9
码字总数 1443
作品 0
海淀
私信 提问
node-webkit,html打包成桌面应用,pc应用

将index.html和package.json这两个文件压缩到一个zip压缩包里,命名为app.zip 把app.zip这个文件的扩展名改为nw,变为 app.nw 首先打开windows的cmd,然后输入如下命令 copy /b nw.exe+app.nw ...

monster13
2016/06/14
44
0
windows平台开发,在eclipse中使用java如何调用.so文件,试了半天还是不行:

windows平台开发,在eclipse中使用java如何调用.so文件,试了半天还是不行: 1、java工程项目不是安卓项目,是web项目, 2、.so是linux下生成的动态库,.dll是windows下生成的动态库,网上几...

hhl3136
2017/11/21
2.3K
7
quick-cocos2d-x protobuf

1、下载pbc项目 https://github.com/miaodadao/pbc 2、proto生成pb文件 https://code.google.com/p/protobuf/downloads/list 下载protoc文件,然后切换到上面下载完成后解压的文件下调用下面...

小房小田
2014/04/03
610
0
quick-cocos2d-x使用protobuf

1、下载pbc项目 https://github.com/miaodadao/pbc 2、proto生成pb文件 https://code.google.com/p/protobuf/downloads/list 下载protoc文件,然后切换到上面下载完成后解压的文件下调用下面...

千山万水
2014/05/05
1K
0
how to add 3rd party modules with C/C++ addons

read 3rd party modules with C/C++ addons https://github.com/nwjs/nw.js/wiki/Using-Node-modules https://github.com/nwjs/nw.js/wiki/Build-native-modules-with-nw-gyp http://docs.nw......

bravelionking
2016/02/06
5
0

没有更多内容

加载失败,请刷新页面

加载更多

CentOS7.6中安装使用fcitx框架

内容目录 一、为什么要使用fcitx?二、安装fcitx框架三、安装搜狗输入法 一、为什么要使用fcitx? Gnome3桌面自带的输入法框架为ibus,而在使用ibus时会时不时出现卡顿无法输入的现象。 搜狗和...

技术训练营
昨天
5
0
《Designing.Data-Intensive.Applications》笔记 四

第九章 一致性与共识 分布式系统最重要的的抽象之一是共识(consensus):让所有的节点对某件事达成一致。 最终一致性(eventual consistency)只提供较弱的保证,需要探索更高的一致性保证(stro...

丰田破产标志
昨天
8
0
docker 使用mysql

1, 进入容器 比如 myslq1 里面进行操作 docker exec -it mysql1 /bin/bash 2. 退出 容器 交互: exit 3. mysql 启动在容器里面,并且 可以本地连接mysql docker run --name mysql1 --env MY...

之渊
昨天
10
0
python数据结构

1、字符串及其方法(案例来自Python-100-Days) def main(): str1 = 'hello, world!' # 通过len函数计算字符串的长度 print(len(str1)) # 13 # 获得字符串首字母大写的...

huijue
昨天
6
0
PHP+Ajax微信手机端九宫格抽奖实例

PHP+Ajax结合lottery.js制作的一款微信手机端九宫格抽奖实例,抽奖完成后有收货地址添加表单出现。支持可以设置中奖概率等。 奖品列表 <div class="lottery_list clearfix" id="lottery"> ......

ymkjs1990
昨天
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部