node.jsのネイティブアドオンを作成し、node-gypを使用せずにMSVC ++でコンパイルし、ノードREPLとアプリケーションで正常に使用しました。x64ノードを使用してx64アドオンをコンパイルしています。node-gypでビルドできるようにしようとしています。node-gypでVisualStudioソリューションを生成してコンパイルしましたが、出力されるアドオンが機能しません。私が得る唯一のエラーはこれです:
Error: The specified procedure could not be found.
at Object.Module._extensions..node (module.js:480:11)
at Module.load (module.js:356:32)
at Function.Module._load (module.js:312:12)
at Module.require (module.js:362:17)
at require (module.js:378:17)
at repl:1:13
at REPLServer.self.eval (repl.js:111:21)
at rli.on.e (repl.js:260:20)
at REPLServer.self.eval (repl.js:118:5)
at Interface.<anonymous> (repl.js:250:12)
アドオンをロードしようとするスクリプトを実行すると、次のようになります。
module.js:480
process.dlopen(filename, module.exports);
^
Error: The specified procedure could not be found.
at Object.Module._extensions..node (module.js:480:11)
at Module.load (module.js:356:32)
at Function.Module._load (module.js:312:12)
at Module.require (module.js:362:17)
at require (module.js:378:17)
at Object.<anonymous> (c:\blah\testheaders.js:1:75)
at Module._compile (module.js:449:26)
at Object.Module._extensions..js (module.js:467:10)
at Module.load (module.js:356:32)
at Function.Module._load (module.js:312:12)
dlopenはLinuxでのダイナミックライブラリのロードと関係があることを学びましたが、ノード(特に、Windows)に関連する有用な情報を見つけることができません。このアドオンにはいくつかのサードパーティのdllが必要ですが、それらは私のパス上にあります。また、node-gypなしでコンパイルすると、アドオンは正常に機能します。
これを機能させる方法を理解するには、何をする必要がありますか?