###第一次用 electron FFI-NPAI 调用 c++dll,遇到出参的问题,如下
调用身份证模块 函数声明:__int16 IDCard_ReadCard(HANDLE icdev,char* message); 入口参数:icdev: 通讯标识符 出口参数:message: 返回的操作信息(长度在 8 到 18 之间,定义时字节长度要大于 18 )
ELECTRON: 8.0.0 NODEJS: 12.18.0
** ffi 文档里面把 出参的 char*定义成 string,于是我这样定义 **
IDCard_ReadCard: ['int', ['int', 'string']]
** 调用 **
const readMsgBuf = new Buffer(60);
const rs = this.$idcard.IDCard_ReadCard(dev, readMsgBuf)
然而会报错
[ERR_ASSERTION]: expected a "string" as the third argument
然后也再网上搜了下其他的方案
如声明成
IDCard_ReadCard: ['int', ['int', 'char *']]
虽然不报错了,但是不能获取返回值
还有一些其他的,都不能获取到数据,请了解这个的道友指导一下,不甚感激