nodejs安装electron使用ffi模块调用windows的dll文件
2017-07-04 09:27
411 查看
1.安装nvm
访问https://github.com/coreybutler/nvm-windows下载windows的nvm工具
2.设置国内镜像,否则需要翻墙
nvm node_mirror https://npm.taobao.org/mirrors/node/
nvm npm_mirror https://npm.taobao.org/mirrors/npm/
3.安装(参照https://github.com/nodejs/node-gyp#option-2)
.netframework 4.5.1
python2.7
Visual C++ Build Tools
npm config set msvs_version 2015
4.安装node-gyp npm install -g node-gyp
5.生成项目目录
npm init //初始化
npm install electron —save-dev //安装electron
npm install electron-rebuild —save-dev //安装自动构建工具
6.修改package.json文件
"scripts": {
"start": "electron .",//启动方式
"postinstall": "electron-builder install-app-deps"//自动构建
},
7.安装ffi插件npm install ffi —save
8.ffi调用dll时需要将某些返回汉字解码需要引入iconv-lite插件,
npm install buffer —save
npm install stream —save
npm install iconv-lite —save
9.使用ffi调用dll例子
const ffi = require('ffi')
const ref = require('ref')
const iconv = require('iconv-lite')
// typedef
var initCharParam = ref.refType('char');
var initIntParam = ref.refType('int');
var fggs = new ffi.Library(__dirname+'\\dll\\Sdtapi', {
'InitComm':
[
'int', [ 'int']
],
'Authenticate':['int',[]],
'ReadBaseMsg':['int',[initCharParam,initIntParam]]
});
var ret =fggs.InitComm(1001)
if ( ret ){
ret= fggs.Authenticate();
if (ret){
let msg = new Buffer(200);
let len = ref.alloc('int');
ret= fggs.ReadBaseMsg(msg,len);
let len_val = len.deref();
if (ret &
4000
gt; 0 ){
let name = trim(iconv.decode(msg.subarray(0,31),'gb2312'));
let sex = trim(iconv.decode(msg.subarray(31,34),'gb2312'));
let folk = trim(iconv.decode(msg.subarray(34,44),'gb2312'));
let birthday = trim(iconv.decode(msg.subarray(44,53),'gb2312'));
let address = trim(iconv.decode(msg.subarray(53,124),'gb2312'));
let code = trim(iconv.decode(msg.subarray(124,143),'gb2312'));
let agency = trim(iconv.decode(msg.subarray(143,174),'gb2312'));
let expire_begin = trim(iconv.decode(msg.subarray(174,183),'gb2312'));
let expire_end = trim(iconv.decode(msg.subarray(183,191),'gb2312'));
debugger;
//显示文字及图片信息
}
}
}
访问https://github.com/coreybutler/nvm-windows下载windows的nvm工具
2.设置国内镜像,否则需要翻墙
nvm node_mirror https://npm.taobao.org/mirrors/node/
nvm npm_mirror https://npm.taobao.org/mirrors/npm/
3.安装(参照https://github.com/nodejs/node-gyp#option-2)
.netframework 4.5.1
python2.7
Visual C++ Build Tools
npm config set msvs_version 2015
4.安装node-gyp npm install -g node-gyp
5.生成项目目录
npm init //初始化
npm install electron —save-dev //安装electron
npm install electron-rebuild —save-dev //安装自动构建工具
6.修改package.json文件
"scripts": {
"start": "electron .",//启动方式
"postinstall": "electron-builder install-app-deps"//自动构建
},
7.安装ffi插件npm install ffi —save
8.ffi调用dll时需要将某些返回汉字解码需要引入iconv-lite插件,
npm install buffer —save
npm install stream —save
npm install iconv-lite —save
9.使用ffi调用dll例子
const ffi = require('ffi')
const ref = require('ref')
const iconv = require('iconv-lite')
// typedef
var initCharParam = ref.refType('char');
var initIntParam = ref.refType('int');
var fggs = new ffi.Library(__dirname+'\\dll\\Sdtapi', {
'InitComm':
[
'int', [ 'int']
],
'Authenticate':['int',[]],
'ReadBaseMsg':['int',[initCharParam,initIntParam]]
});
var ret =fggs.InitComm(1001)
if ( ret ){
ret= fggs.Authenticate();
if (ret){
let msg = new Buffer(200);
let len = ref.alloc('int');
ret= fggs.ReadBaseMsg(msg,len);
let len_val = len.deref();
if (ret &
4000
gt; 0 ){
let name = trim(iconv.decode(msg.subarray(0,31),'gb2312'));
let sex = trim(iconv.decode(msg.subarray(31,34),'gb2312'));
let folk = trim(iconv.decode(msg.subarray(34,44),'gb2312'));
let birthday = trim(iconv.decode(msg.subarray(44,53),'gb2312'));
let address = trim(iconv.decode(msg.subarray(53,124),'gb2312'));
let code = trim(iconv.decode(msg.subarray(124,143),'gb2312'));
let agency = trim(iconv.decode(msg.subarray(143,174),'gb2312'));
let expire_begin = trim(iconv.decode(msg.subarray(174,183),'gb2312'));
let expire_end = trim(iconv.decode(msg.subarray(183,191),'gb2312'));
debugger;
//显示文字及图片信息
}
}
}
相关文章推荐
- (五下)安装ffi模块,使用electron调用win32 api, win32项目设置父子窗口关系
- Electron使用NodeJS扩展模块调用DLL
- windows下python调用R语言的模块rpy2安装使用
- 第一次在windows使用iis7安装并运行nodejs
- windows下安装requests模块 到python,eclipse可以使用
- nodejs在windows下的安装配置(使用NVM的方式)
- windows下使用cpanm进行模块安装
- windows安装使用SQLlite并在C#调用SQLlite开发
- 配置 Windows 下的 nodejs C++ 模块编译环境 安装 node-gyp
- windows下使用pip安装python模块lxml
- Windows下python安装PyCrypto加密模块以及使用
- xp系统中使用node的ffi模块调用系统dll
- npm安装nodejs模块时,有些模块因为墙的原因无法安装,可以使用指定代理来解决。
- windows下的nodejs的安装和使用
- Windows下使用NodeJS和npm安装UglifyJS对JavaScript进行压缩或美化
- Windows下安装Python SSH模块及其使用
- 使用nodejs、mongodb、express、linux搭建社区网站(1)之nodejs、mongodb的windows下安装
- 简述nodejs、npm及其模块在windows下的安装与配置
- 使用Nodejs在Windows上调用CMD命令
- nodejs在windows下的安装配置(使用NVM的方式)