Edge: Appel de code x86 natif depuis .NET sur node.js x64 sur Windows x64

Créé le 16 avr. 2013  ·  3Commentaires  ·  Source: tjanczuk/edge

Salut,

Est-il possible d'appeler une dll 32 bits native à partir du code .NET dans edge.js, en utilisant node.js x64 sous Windows x64 ?

Dans l'application console .NET, je peux appeler mon ancienne dll native 32 bits (par DllImport). Mais en utilisant le même code avec edge.js, j'obtiens BadImageException. Le même résultat que j'obtiens si j'essaie d'appeler l'assembly x86 .NET.

Donc, je dois utiliser x86 node.js en raison de l'utilisation de certains composants x86 hérités ?

Une autre question, qu'en est-il des COM-s ?

J'ai vu que le nœud IIS utilise uniquement x86 node.js. Je n'ai pas d'exigences particulières pour x64 pour mon application (mais bien sûr la version x64 serait plus géniale sur les machines x64). Je devrais donc utiliser la version x86, n'est-ce pas ?

Commentaire le plus utile

+1 -- Je me demande si des progrès ont été réalisés ? Mon cas d'utilisation spécifique est que je voudrais appeler un assembly .NET tiers qui à son tour fait référence à une dll C++ native 32 bits.

Tous les 3 commentaires

S'il est accessible via C (dll native), vous pouvez être intéressé par la création d'un module/package natif à utiliser avec node.

Quelle est la complexité de votre interaction et pourrait-elle être exposée via un exe de ligne de commande qui utilise une entrée/sortie canalisée ?

Offrir juste quelques solutions alternatives qui peuvent être plus directes.

Merci de votre réponse

Dans certains cas, lorsque j'utilise une logique .NET à l'aide de native.dll, je pense que je pourrais réutiliser tout le code dans .NET et l'appeler une fois à partir de JavaScript.

Mais dans d'autres cas, lorsque je pourrais avoir du code JavaScript avec une logique qui utilise la logique de la dll native, il serait préférable que j'utilise du code natif directement à partir de JavaScript.

En C#, j'ai importé deux fonctions natives, toutes deux avec une signature comme :

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

J'ai trouvé le package node.js pour appeler dll-s https://github.com/rbranson/node-ffi.
mais je ne l'ai pas encore essayé. Est-il difficile d'appeler ce type de fonction avec node-ffi ?

Je pense obtenir un fichier binaire à partir de la base de données, puis le décoder avec un algorithme dans une dll native, et éventuellement le redimensionner et à la fin renvoyer la sortie binaire au navigateur. BTW, quelqu'un connaît un bon package node.js pour traiter des images binaires dans node.js ?

+1 -- Je me demande si des progrès ont été réalisés ? Mon cas d'utilisation spécifique est que je voudrais appeler un assembly .NET tiers qui à son tour fait référence à une dll C++ native 32 bits.

Cette page vous a été utile?
0 / 5 - 0 notes

Questions connexes

sz30313484 picture sz30313484  ·  7Commentaires

bravomikekilo picture bravomikekilo  ·  6Commentaires

agracio picture agracio  ·  6Commentaires

doukai picture doukai  ·  3Commentaires

WinterWoods picture WinterWoods  ·  10Commentaires