2018 02 26 21 58 [nodeJS] 從 nodejs 去呼叫 dll 檔裡的 API .

因為要安裝ffi, 所以需要先設好你的VC的變數,
"c:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\bin\x86_amd64\vcvarsx86_amd64.bat"
而我的nodejs是64bits,因此要用64bits的變數.
然後執行
npm install ffi
npm install ref
安裝完成後,
就可以用以下的sample code去測試,看是不是成功.
成功應該就可以看到一個messagebox.


var ffi = require("ffi");
var ref = require("ref");
var user32 = ffi.Library("user32", {
    "MessageBoxA": ["int", ["uint32","pointer","pointer","uint32"]]
});
 
var rt = user32.MessageBoxA(ref.NULL,ref.allocCString('hello world'),ref.allocCString('Title'),1);
console.log(rt);

PS: 如果你想要在 electron 裡面用,
要另外重 build electron.
npm install --save-dev electron-rebuild
.\node_modules\.bin\electron-rebuild
Ref: electron/using-native-node-modules.md at master · electron/electron · GitHub