把dll的load放在Electron中,就會報一個錯:
Error: A dynamic link library (DLL) initialization routine failed
這顯然就是dll沒有加載成功,為什么在Node中已經試過沒問題的方法會在Electron中出問題,我此刻內心是惶恐的,因為Electron是我們最終的javascript運行容器,如果這種加載外部庫的方式不可用,那意味着之前的一些技術方案都要重來,懷着忐忑的心情,我搜了一下,好在有非常貼合的問題並有相當具體的問題解決方案:
因為electron和node.js用的V8版本不一致,所以直接使用npm安裝的模塊可能在electron中不可用,特別是使用c、c++開發的模塊。
在下面“使用原生模塊”部分中,竟然非常神奇的是中文的解決方案,我采用第二種“下載並重新編譯模塊”的解決方案。
npm install --save-dev electron-rebuild
每次運行"npm install"時,也運行這條命令
./node_modules/.bin/electron-rebuild
在windows下如果上述命令遇到了問題,嘗試這個:
.\node_modules.bin\electron-rebuild.cmd
如此就成功在Electron中加載了dll庫文件。