electron系列(一)调用dll

用electron的目的,其实很简单。就是web架构要直接使用前端电脑的资源,但是浏览器限制了使用,所以用electron来达到这个目的。其中调用dll是一个非常基本的操作。

安装 ffi-napiref-napi 包:

javascript 复制代码
npm install ffi-napi ref-napi

main.js,并添加如下代码:

javascript 复制代码
const { app, BrowserWindow } = require('electron');
const path = require('path');
const ffi = require('ffi-napi');
const ref = require('ref-napi');

// 定义DLL中导出的函数和它们的参数、返回值类型
const exampleLibrary = ffi.Library(path.join(__dirname, 'example.dll'), {
  'Add': ['int', ['int', 'int']]  // Add函数接受两个整数作为参数,并返回一个整数
});

function createWindow() {
  const mainWindow = new BrowserWindow({
    width: 800,
    height: 600,
    webPreferences: {
      nodeIntegration: true,
      contextIsolation: false
    }
  });

  mainWindow.loadFile('index.html');

  // 调用DLL中的Add函数并打印结果
  const result = exampleLibrary.Add(5, 3);
  console.log(`DLL Add result: ${result}`);
}

app.whenReady().then(createWindow);

app.on('window-all-closed', () => {
  if (process.platform !== 'darwin') {
    app.quit();
  }
});

app.on('activate', () => {
  if (BrowserWindow.getAllWindows().length === 0) {
    createWindow();
  }
});
相关推荐
风之舞_yjf几秒前
Vue基础(30)_mixins配置项
前端·vue.js
李白的手机8 分钟前
前端→Java→MySQL 时区时间处理全链路深度解析
前端·后端
踩着两条虫10 分钟前
AI驱动的 Vue3应用开发平台深入探究(十五):扩展与定制之自定义设置器与属性编辑器
前端·vue.js·人工智能·低代码·系统架构·编辑器
恋猫de小郭13 分钟前
Flutter 3.41.6 版本很重要,你大概率需要更新一下
android·前端·flutter
Surmon6 小时前
彻底搞懂大模型 Temperature、Top-p、Top-k 的区别!
前端·人工智能
木斯佳8 小时前
前端八股文面经大全:bilibili生态技术方向二面 (2026-03-25)·面经深度解析
前端·ai·ssd·sse·rag
不会写DN8 小时前
Gin 日志体系详解
前端·javascript·gin
冬夜戏雪9 小时前
实习面经记录(十)
java·前端·javascript
爱学习的程序媛10 小时前
【Web前端】JavaScript设计模式全解析
前端·javascript·设计模式·web
小码哥_常10 小时前
从SharedPreferences到DataStore:Android存储进化之路
前端