io.js + pangyp + VS2015 CTPで簡単なネイティブ・アドオンが動かない。

公開:2015-04-13 21:08
更新:2020-02-15 04:37
カテゴリ:io.js,native addon

下記記事を参考にコードを書いてみた。

Windows でも Node.js C/C++ アドオンを作ってみる - 凹みTipstips.hecomi.com

もう2年近く前の記事だし、私が今使っているのはio.jsである。日進月歩なio.js(node.js)環境ではお作法もかなり違っていて、このまま書いても動かなくなっている。そういうわけでこの記事を現在の環境でなんとか書き換えてみようと思った。それでまずはC++のコード。

NaNというライブラリを使って、バージョンに依存しないコードを書いてみている。このコードはio.js 1.6.4 + pangyp + VS2015 CTPでコンパイルは通る。でこのモジュールをrequireしてみると下記エラーが発生する。

Module.js:335
 Module._extensionsextension;
                              ^
rror: Module did not self-register.
   at Error (native)
   at Module.load (module.js:335:32)
   at Function.Module._load (module.js:290:12)
   at Module.require (module.js:345:17)
   at require (module.js:364:17)
   at Object.<anonymous> (H:\pj\gyptest\notepad.js:1:77)
   at Module._compile (module.js:410:26)
   at Object.Module._extensions..js (module.js:428:10)
   at Module.load (module.js:335:32)
   at Function.Module._load (module.js:290:12)

皆目見当がつかない。NaNを使わないで、素で書いてみようかな。。