我正在尝试从node.js应用程序中访问特定的本机Windows API调用。我相信最好的方法是在我的node.js应用程序中创建一个本机扩展/插件到节点,然后从JavaScript调用。
在哪里可以找到有关如何实际编译此类可执行文件的资源?我可以找到有关如何编写它的说明,但所有构建说明似乎都适用于Linux。我很好用mingw编译g ++,我不需要使用Visual Studio。另外,在哪里可以找到编译扩展所需的头文件?
答案 0 :(得分:26)
我认为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
);
答案 1 :(得分:14)
这已经过时了。今天,使用nan和node-gyp编写和构建跨平台工作的本机模块。
我自己也经历过这种痛苦。 Here's a guide that helped me get it working. (PDF)请记住,由于现在Windows上正式支持Node,因此Visual Studio是Windows上Node的推荐构建工具。
基本上:
D:\node\
替换为您的Node repo的位置。