调用c++原生dll
首先安装ffi-napi,由于原本的node-ffi已经一年没有更新了,导致无法和electron的新版本兼容,让很多人在使用它的时候,都只能被迫降级到4.x,但是又不能享受新版electron带来的便利,这个库完美的解决了我们的问题。
提示
如何使用?
- 首先确保您已经生成正确的dll文件;并且已经安装了ffi-napi。
- 在static同级目录内创建一个文件夹,名字自取;然后修改中的
DllFolder
对象,它接受字符串类型,是你刚刚创建的文件夹名称。 - 然后放置你的dll文件到你新创建的文件夹内重启一次,然后就可以按照一下方法进行调用了
__lib
是不可被修改,因为本框架已经做了预先处理,所有的__lib
均指向你在文件中设置的DllFolder
值。记住它接受一个字符串
警告
但开发途中是绝对不会这么一帆风顺的,就我在摸索的时候,遇到的问题总结如下:
- Q:控制台报错:
Uncaught Error: Dynamic Linking Error: Win32 error 126
- A:该报错是由于dll文件位置不对引起的,文件路径是否和上面一样,否则您需要使用绝对路径。
- Q:控制台报错:
Uncaught Error: Dynamic Linking Error: Win32 error 193
- Q:控制台报错:
Uncaught Error: Dynamic Linking Error: Win32 error 127
- A:该报错是由于在js中声明了c++中没有的方法导致的,请注意c++中暴漏的函数名;或者是当前dll引用了其他资源文件它没有加载成功。
- Q:控制台报错:
- A:该报错是在打包时,dll释放位置错误,导致程序去c盘查找后无果得到的dll丢失错误。(后面会谈这个打包之后的dll问题)
- A:这种错误通常出现在你打包过一次之后发生,此时你只需要去你的node_modules/ffi-napi文件夹内重新执行一次npm install或者yarn install即可解决。
- Q:控制台报错: