Edge: Aufrufen von nativem x86-Code aus .NET auf node.js x64 unter x64-Windows

Erstellt am 16. Apr. 2013  ·  3Kommentare  ·  Quelle: tjanczuk/edge

Hallo,

Ist es möglich, native 32-Bit-DLL aus .NET-Code in edge.js mit node.js x64 unter Windows x64 aufzurufen?

In der .NET-Konsolenanwendung kann ich meine alte native 32-Bit-DLL (von DllImport) aufrufen. Aber mit dem gleichen Code mit edge.js bekomme ich BadImageException. Das gleiche Ergebnis erhalte ich, wenn ich versuche, die x86 .NET-Assembly aufzurufen.

Also muss ich x86 node.js verwenden, weil ich einige ältere x86-Komponenten verwende?

Noch eine Frage, wie sieht es mit COM-s aus?

Ich habe gesehen, dass IIS-Knoten nur x86 node.js verwendet. Ich habe keine besonderen Anforderungen an x64 für meine App (aber natürlich wäre die x64-Version auf x64-Maschinen besser geeignet). Ich sollte also die x86-Version verwenden, oder?

Hilfreichster Kommentar

+1 -- Ich frage mich, ob Fortschritte gemacht wurden? Mein spezifischer Anwendungsfall ist, dass ich eine .NET-Assembly eines Drittanbieters aufrufen möchte, die wiederum auf eine native 32-Bit-C++-DLL verweist.

Alle 3 Kommentare

Wenn über C (native DLL) darauf zugegriffen werden kann, sind Sie möglicherweise daran interessiert, ein natives Modul/Paket für die Verwendung mit node zu erstellen.

Wie komplex ist Ihre Interaktion und könnte sie über eine Befehlszeilen-Exe verfügbar gemacht werden, die eine Pipe-Ein-/Ausgabe verwendet?

Biete nur ein paar alternative Lösungen an, die direkter sein können.

Danke für die Antwort

In einigen Fällen, wenn ich eine .NET-Logik mit native.dll habe, denke ich, dass ich den gesamten Code in .NET wiederverwenden und einmal aus JavaScript aufrufen könnte.

Aber in anderen Fällen, wenn ich JavaScript-Code mit einer Logik haben könnte, die Logik aus nativer DLL verwendet, wäre es besser, wenn ich nativen Code direkt aus JavaScript verwende.

In C# habe ich zwei native Funktionen importiert, beide mit Signatur wie:

[DllImport("library.dll")]
statisch extern int Func1(byte[] p1, ref int p2, byte[] p3, int p4);

Ich habe das Paket node.js zum Aufrufen von dll-s https://github.com/rbranson/node-ffi gefunden.
aber probiert habe ich es noch nicht. Wie schwierig ist es, diese Art von Funktion mit node-ffi aufzurufen?

Ich denke darüber nach, eine Binärdatei aus der Datenbank zu erhalten, dann mit einem Algorithmus in der nativen DLL zu decodieren und optional die Größe zu ändern und am Ende die Binärausgabe an den Browser zurückzugeben. Übrigens kennt jemand ein gutes node.js-Paket zum Verarbeiten von Binärbildern in node.js?

+1 -- Ich frage mich, ob Fortschritte gemacht wurden? Mein spezifischer Anwendungsfall ist, dass ich eine .NET-Assembly eines Drittanbieters aufrufen möchte, die wiederum auf eine native 32-Bit-C++-DLL verweist.

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen

Verwandte Themen

agracio picture agracio  ·  6Kommentare

keyiis picture keyiis  ·  3Kommentare

NickStrupat picture NickStrupat  ·  11Kommentare

popsugon picture popsugon  ·  3Kommentare

kneumei picture kneumei  ·  10Kommentare