koffi
const koffi = require(‘koffi’)
import iconv from ‘iconv-lite’;const libPath = path.resolve(__dirname, ‘…/…/resources/dll/sss.dll’)
const yktLib = koffi.load(libPath)
const ret = yktLib.func(‘string sss(string Url, string Data, string OutData)’)
let a = new ArrayBuffer(200)
let b = new ArrayBuffer(2000)
let c = {"data": {"Id": "300039","operator": "200624150509","operatorName": "珊珊",}}const inputStr = JSON.stringify(c);
const inputBuffer = iconv.encode(inputStr, 'gbk')console.log(ret(inputBuffer, b, a))
1.js里面没有那么多类型 用iconv.encode(inputStr, 'gbk') 转一遍 否则会报错
2.不管dll需要什么 其实最后都用string 传
3.const yktLib = koffi.load('sss.dll') 如果直接这么调用dll,需要放在项目同级文件 但是打包出来后 会报错 如果node 64位 dll32位 还会报更多错误
处理方法 放在resources里面