在Windows上创build一个node.js本机扩展

我试图从node.js应用程序中访问特定的本机Windows API调用。 我相信这样做的最好方法是创build一个本地扩展/附加到节点,我可以要求在我的node.js应用程序和调用JavaScript。

我在哪里可以find如何实际编译这种可执行文件的资源? 我可以find有关如何编写它的说明,但是所有的构build说明似乎都是针对Linux的。 我很好,在mingw编译通过g ++,我不需要使用Visual Studio。 另外,我在哪里可以find我需要的头文件来编译扩展?

Solutions Collecting From Web of "在Windows上创build一个node.js本机扩展"

我认为node-ffi会帮助你。 这很简单,它的作品。

npm install ffi 
 var FFI = require('ffi'); function TEXT(text){ return new Buffer(text, 'ucs2').toString('binary'); } var user32 = new FFI.Library('user32', { 'MessageBoxW': [ 'int32', [ 'int32', 'string', 'string', 'int32' ] ] }); var OK_or_Cancel = user32.MessageBoxW( 0, TEXT('I am Node.JS!'), TEXT('Hello, World!'), 1 ); 

这现在已经过时了。 今天,使用nan和node-gyp来编写和构建跨平台工作的本地模块。


我自己经历了这种痛苦。 这里有一个指导,帮助我得到它的工作。 (PDF)请记住,由于Node现在在Windows上正式受支持,所以Visual Studio是Windows上Node的推荐构建工具。

基本上:

  • 下载并构建Node源代码。 (见PDF)
  • 在VS中创建一个新的VC ++ Win32解决方案,在随后的向导中选择DLL作为应用程序类型。 确保ATL / MFC未被选中。
  • 写你的插件。 作为一个例子, 这里是我写的一个获取Windows当前的DNS设置 。 具体来说, 项目的设置文件(vcxproj)将是有趣的,因为其中最难的部分是获取所有的库引用/包含路径设置。 您可能想借用我的配置,并将D:\node\替换为Node repo的位置。