electron功能很強大,但是有一些跟操作系統底層交互的功能,electron無法實現,這個時候我們就可以調用原生來配合完成對應功能,本文主要講解在windows平臺下,調用C++的dll文件
在開始之前我們要安裝
1.node-gyp
npm install node-gyp -g
2.windows-build-tools
npm install windows-build-tools -g
這裏需要確定的是python的版本必須是2.7
使用ffi-napi調用dll(c++)
1. 安裝ffi-napi
執行
npm install ffi-napi --save
2. 準備C++動態鏈接庫DLL文件
dll文件請去gitee中獲取,這裏沒辦法上傳
electron-vue-demos
3. 調用dll文件中的方法
const ffi = require('ffi-napi')
const path = require('path')
const Dll = ffi.Library(path.resolve('resources/dll/MyDLL.dll'), {
Add: ['float', ['float', 'float']],
Hello: ['string', []],
StrLength: ['int', ['string']]
})
這個dll一共提供了3個方法,
- 第一個方法是計算加和
- 第二個方法是返回‘Hello’ 字符串
- 第三個方法是計算字符串的長度
具體方法調用
callCppDll () {
console.log('fii.Library Hello result:', Dll.Hello())
console.log('fii.Library Add result:', Dll.Add(1, 2))
console.log('fii.Library Add result:', Dll.StrLength('hello world'))
}
調用dll其實很簡單,只是需要安裝node-gyp和C++編譯工具比較麻煩。本文是基於windows平臺進行開發的,C++編譯出來的文件是dll,如果在Mac平臺上,需要將C++編譯成dylib,接下來我來一個mac平臺的