在网页中调用com组件/dll动态库方案
在web项目中使用api的方式调用com组件/dll动态库,以vue项目为例使用http或socket调用com组件/dll动态库
实现
实现方案就是使用electron编写一个pc的安装包,在electron里去调用com组件/dll动态库,web项目调用安装包提供的接口实现
- 新建electron项目
- 安装winax
npm i winax
electron的项目和纯node项目使用不同,这里需要使用V8引擎重构winax
- 安装electron-rebuild(已安装可跳过此步骤)
npm i electron-rebuild --save-dev
- 重构winax
electron-rebuild -f -w winax
- 使用(
以访问数据库为例
)
require('winax');
// 创建ADO连接
var con = new ActiveXObject('ADODB.Connection');
// 打开连接并创建表
con.Open('Provider=Microsoft.ACE.OLEDB.12.0;Data Source=c:\tmp;Extended Properties="DBASE IV;"', '', '');
con.Execute("Create Table persons.dbf (Name char(50), City char(50), Phone char(20), Zip decimal(5))");
con.Execute("Insert into persons.dbf Values('John', 'London','123-45-67','14589')");
con.Execute("Insert into persons.dbf Values('Andrew', 'Paris','333-44-55','38215')");
con.Execute("Insert into persons.dbf Values('Romeo', 'Rom','222-33-44','54323')");
// 查询并返回结果
var rs = con.Execute("Select * from persons.dbf");
var reccnt = rs.RecordCount;
最后贴出测试通过的node以及electron版本
node v14.0.0
Visual Studio 2017
electron-builder打包问题
- 下载winCodeSign失败可去github下载对于包并解压到C:\Users\用户\AppData\Local\electron-builder\Cache\winCodeSign下
- 下载nsis失败可去github下载对于包并解压到C:\Users\用户\AppData\Local\electron-builder\Cache\nsis下