javascript - visual - node js tutorial
Crear una extensión nativa node.js en Windows (2)
Creo que node-ffi te ayudará. Es simple y funciona.
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
);
Estoy intentando acceder a una llamada particular de la API de Windows desde una aplicación node.js. Creo que la mejor manera de hacerlo es crear una extensión / complemento nativo para el nodo que pueda requerir en mi aplicación node.js y llamar desde JavaScript.
¿Dónde puedo encontrar recursos sobre cómo compilar realmente este tipo de ejecutable? Puedo encontrar instrucciones sobre cómo escribirlo, pero todas las instrucciones de compilación parecen ser para Linux. Estoy bien con la compilación a través de g ++ en mingw, no necesito usar Visual Studio. Además, ¿dónde encuentro los archivos de encabezado que necesito para compilar la extensión?
Esto está ahora fuera de fecha. Hoy, use nan y node-gyp para escribir y construir módulos nativos que funcionen en todas las plataformas.
He pasado por este dolor a mí mismo. Aquí hay una guía que me ayudó a que funcione. (PDF) Recuerde que dado que Node ahora es oficialmente compatible con Windows, Visual Studio es la herramienta de compilación recomendada para Node en Windows.
Básicamente:
- Download y construye el código fuente de Node. (Ver PDF)
- Cree una nueva solución VC ++ Win32 en VS, seleccionando DLL como el tipo de aplicación en el asistente que sigue. Asegúrese de que ATL / MFC esté sin marcar.
- Escribe tu complemento. Como ejemplo, aquí hay uno que escribí que obtiene la configuración de DNS actual de Windows . Específicamente, el archivo de configuración del proyecto (vcxproj) será de interés ya que una de las partes más difíciles es configurar todas las referencias de biblioteca / incluir rutas. Es posible que desee tomar prestada mi configuración y reemplazar
D:/node/
con la ubicación de su repositorio Node.