Node.js moduł macierzysty nie jest prawidłowym błędem aplikacji Win32
Próbuję utworzyć macierzysty moduł Hello World dla node.js
Masz projekt Win32 w VS 2012 z jednym plikiem:
#include <node.h>
#include <v8.h>
using namespace v8;
Handle<Value> Method(const Arguments& args) {
HandleScope scope;
return scope.Close(String::New("world"));
}
void init(Handle<Object> target) {
target->Set(String::NewSymbol("hello"),
FunctionTemplate::New(Method)->GetFunction());
}
NODE_MODULE(hello, init)
To się kompiluje do hello.node.
Opcje:
- Biblioteka dynamiczna (.dll)
- Brak obsługi środowiska wykonawczego Common Language
Użyj go jak:
hello = require './hello'
console.log hello.hello()
Działa na komputerze lokalnym (win8 x64, węzeł: 0.8.12)
Ale na serwerze zdalnym (serwer Windows 2008 x64, węzeł: 0.8.12, iisnode: 0.1.21 x64, iis7) zgłasza ten błąd:
Aplikacja zgłosiła nieprzechwycony wyjątek i została zakończona: Błąd:
% 1 nie jest prawidłową aplikacją Win32.
C: getp lib serwer hello.node
at Object.Module._extensions..node (module.js: 485: 11)
at Module.load (module.js: 356: 32)
at Function.Module._load (module.js: 312: 12)
at Module.require (module.js: 362: 17)
w require (module.js: 378: 17)
w Object. (C: inkpub lib serwer index.js: 32: 9)
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)
Co wypróbowałem:
Gra z ustawieniami puli aplikacji (włącz aplikacje win32) nie pomaga.
Iisnode x86 nie instaluje się na x64 os.
Nie można kompilować do x64 z powodu błędu: błąd 2 błędu LNK1112: typ maszyny modułu „X86” powoduje konflikt z typem maszyny docelowej „x64” C: derby hello build węzeł.lib (node.exe) witaj
Czy ktoś ma jakieś sugestie?