在Electron中通過ffi模塊實現JavaScript調用C++動態庫


目前在網上能搜到的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的各種變量類型匹配,我們在工作中遇到的變量類型匹配將在下一個總結貼中列出


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM