试图在Electron中使用ffi是致命的错误

时间:2017-01-22 03:41:01

标签: node.js electron node-ffi

我用ffi安装npm install ffi --save-dev然后我在我的电子应用中使用它:

const {app, Menu, Tray, BrowserWindow} = require('electron');
const path = require('path')
const url = require('url')
const ffi = require('ffi');
console.log('ffi:', ffi);

但它会抛出此错误,图片 -

图片输入:

A JavaScript error occurred in the main process
Uncaught Exception:
Error: A dynamic link library (DLL) initialization routine failed.
\\?\C:\UserS\MercuriuS\DocumentS\GitHub\NativeShot\src\e|ectror\\nodeimo...\binding.node
at Error (native)
at process.rnodule.(anonyrnous function) [as dlopen] (ELECTRON_ASAR.js:173:20)
at object.Module.,extensions..node (rnodule.js:583:18)
at object.rnodule.(anonyrnous function) [as .node] (ELECTRON_ASAR.js:173:20)
at Moduleload (rnodule.js:473:32)
at tryModuIeLoad (rnodule.js:432:12)
at FunctionModuleJoad (rnodule.js:424:3)
at Modulerequire (rnodule.js:483:17)
at require (internal/modulejs:20:19)
at bindings
(C:\UserS\MercuriuS\DocumentS\GitHub\NativeShot\src\e|ectron\nodeimodules\binding...:44)

有谁知道如何让它发挥作用?

我在Windows上,所以我甚至尝试过 - https://github.com/nodejs/node-gyp#installation

npm install --global --production windows-build-tools

但这并没有解决它。

1 个答案:

答案 0 :(得分:1)

您必须使用其中一个documented approaches为您的Electron版本重建ffi。更简单的替代方法可能是使用electron-forge我相信会为您重建本机模块。