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里面