背景:
自己写nodejs c++插件(使用napi),使用本地的node版本测试js调用插件正常运行,在electron里require插件报错。
本地node版本和electron版本是相同的ABI版本,按之前的经验,只要本地js测试通过了,放在electron里调用也是可以的。
解决:
参考 Error: A dynamic link library (DLL) initialization routine failed. #1738
也有人遇到使用插件时本地测试正常,electron使用报错的情况,根据vroad的说法,我把插件里binding.gyp的'win_delay_load_hook': 'false'去掉了,重新编译插件。
win_delay_load_hook当初是我为了解决引用库之后各种乱七八糟编译问题时,尝试使用的,但实际上也没解决,我那时想着留着先把,万一有用呢,然后就把自己给坑了。