Создать собственное расширение node.js в Windows

Я пытаюсь получить доступ к конкретному вызову Windows API изнутри приложения node.js. Я считаю, что лучший способ сделать это - создать собственное расширение / дополнение к узлу, которое мне может потребоваться в моем приложении node.js, и вызывать из JavaScript.

Где я могу найти ресурсы о том, как на самом деле скомпилировать этот тип исполняемого файла? Я могу найти инструкции по его написанию, но все инструкции по сборке, похоже, для Linux. Я в порядке с компиляцией через g++ на mingw, мне не нужно использовать Visual Studio. Кроме того, где я могу найти заголовочные файлы, которые мне нужны для компиляции расширения?

2 ответа

Решение

Я думаю, что 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 является рекомендуемым средством сборки для Node в Windows.

В принципе:

Другие вопросы по тегам