目前在網上能搜到的JS調C++動態庫的實現有兩種,一種是通過開發Node.js addon模塊的方式實現調用,這種對於我們已有的代碼實現比較復雜,需要大量的開發,因此不適用;另一種是通過FFI模塊,FFI的全稱是Foreign Function Interface,該項目生來就是解決NodeJS的本地調用問題的,其流程就相當於Windows下的LoadLibrary()和GetProcAddress(),亦可以理解為NodeJS下的平台調用。
1.安裝ffi模塊。ffi模塊需要使用http://www.cnblogs.com/conorpai/p/6407010.html 方法進行安裝,否則與Electron不匹配
2.需要封裝的CAPI
ffi聲明方式
調用方式
3.通過js調用C++回調函數。這種方法未在實際工作中使用到,所以未經實踐檢驗,此處引用:http://stackoverflow.com/questions/36819679/node-fficall-c-lib-with-callback-function
4.使用ffi遇到最大的困難還是C與js的各種變量類型匹配,我們在工作中遇到的變量類型匹配將在下一個總結貼中列出