nodejs安装electron使用ffi模块调用windows的dll文件
来源:互联网 发布:阿里云地域选择 湖北 编辑:程序博客网 时间:2024/04/24 23:03
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 > 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;
//显示文字及图片信息
}
}
}
- nodejs安装electron使用ffi模块调用windows的dll文件
- Electron使用NodeJS扩展模块调用DLL
- Electron通过ffi调用DLL
- (五下)安装ffi模块,使用electron调用win32 api, win32项目设置父子窗口关系
- NodeJS通过ffi调用DLL
- electron 使用 node-ffi 调用 C++ 动态链接库(DLL)
- electron 使用 node-ffi 调用 C++ 动态链接库(DLL)
- [杂乱]Electron通过node-ffi调用C++dll
- Electron如何调用NodeJS扩展模块
- Electron 调用本地模块
- node_webkit node webkit 调用本地 dll 文件,编译 ffi 并调用 dll
- 通过ffi在nodejs中调用动态链接库(.so文件)
- nodejs 模块安装与使用
- 使用npm安装electron不成功的解决方法
- 使用npm安装electron不成功的解决方法
- 使用Squirrel创建基于Electron开发的Windows 应用安装包
- electron 使用原生node 模块
- Windows系统中nodejs安装postgresql模块
- PAT甲级 1011. World Cup Betting (20)
- libev:详解
- 《DeLiGAN : Generative Adversarial Networks for Diverse and Limited Data》论文笔记
- eclipse:Unknown error: Unable to build: the file dx.jar was not loaded from the SDK folder!
- web集中式高并发架构设计
- nodejs安装electron使用ffi模块调用windows的dll文件
- PC传输图片到Hololens
- windows中navicat如何连接虚拟机中的数据库
- 安装caffe时“The remote end hung up unexpectedly fatal: 过早的文件结束符(EOF)”
- sublim中怎么快捷添加函数的注释
- 智慧云中的FPGA
- 对微软winsock PC端开发蓝牙疑问
- HTTP协议详解
- 分布式一致性