electron node-ffi 调用dll程序闪退

头文件定义的函数,结构体

typedef struct {
    int n[10];
}ARRAY_INT;

ARRAY_INT ArrayGet1();

c++源码

ARRAY_INT ArrayGet1()
{
    ARRAY_INT ai;
    wprintf(L"[DLL_OUT]\t%s\t", __FUNCTIONW__);
    for (int i = 0; i < sizeof(ai.n) / sizeof(int); i++) {
        ai.n[i] = i;
        std::wcout << i << " ";
    }
    std::wcout << std::endl;

    return ai;
}

JS调用

const path = require('path')
import ref from 'ref-napi'
import ffi from 'ffi-napi'
import structDi from 'ref-struct-di'

const struct = structDi(ref);

const arrStruct = struct({ n: 'int' })

const lib = new ffi.Library(path.join(__dirname, `../resources/${process.platform}/LibraryExportsTest2`), {
  ArrayGet1: [ref.refType(arrStruct), []],
})
lib.ArrayGet1()

无任何抛错,electron直接闪退。求大佬指点一二。

electron v13.0.0
node v14.18.2

阅读 2.3k
1 个回答
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题