先安装python2.7

安装node-gyp

cnpm install node-gyp -g

新建一个Electron-vue项目(案例用Electron-vue)

vue init simulatedgreg/electron-vue my-project

安装electron-rebuild

cnpm install --save-dev electron-rebuild

安装ffi

cnpm install ffi --save

在主进程中导入ffi

const ffi=require("ffi");

然后npm run dev试运行下,一般都会报如下错误

node调用dll-LMLPHP

打开终端运行如下代码编译一下原生代码模块

.\node_modules\.bin\electron-rebuild.cmd

上面这句执行完后会提示Rebuild Complete。

然后再npm run dev运行,如果可以运行,说明我们的ffi模块没问题了。

调用我们的dll

    var libpath = path.join(__dirname, '/termb.dll');

    //连接dll中的方法,InitComm为dll中的方法名,['int',['int']]第一个int是入参类型,最后一个int所在的数组放的是出参的类型
    var testLib = ffi.Library(libpath, {
        InitComm:['int',['int']]
    });


     //调用
    const dllRet = testLib.InitComm(1001);
    console.log('ret => '+dllRet);

注意:dll如果是32 bit,那么node也要32位 

01-24 04:00