J'essaie de comprendre comment transmettre des données entre une bibliothèque C et un module NodeJS. Serais-je capable de le faire via le module NodeFFI? Ou devrais-je écrire mon propre addon NodeJS pour développer une interface C-NodeJS?Interface NodeJS-C
-1
A
Répondre
4
Les états de documentation node-ffi
:
node-ffi
est un addon Node.js pour le chargement et appeler les bibliothèques dynamiques à l'aide pure JavaScript. Il peut être utilisé pour créer des liaisons à des bibliothèques natives sans écrire de code C++.
Vous avez juste besoin d'accéder aux bibliothèques comme indiqué dans node-ffi
et les résultats de passe ailleurs. Dans leur source, ils ont un exemple. En supposant qu'ils sont dans le même répertoire:
fichier factorial.c
:
#include <stdint.h>
uint64_t factorial(int max) {
int i = max;
uint64_t result = 1;
while (i >= 2) {
result *= i--;
}
return result;
}
fichier factorial.js
:
//load the ffi module
var ffi = require('ffi');
//include the function
var libfactorial = ffi.Library('./libfactorial', {
'factorial': [ 'uint64', [ 'int' ] ]
});
if (process.argv.length < 3) {
console.log('Arguments: ' + process.argv[0] + ' ' + process.argv[1] + ' <max>');
process.exit();
};
//usage of the function
var output = libfactorial.factorial(parseInt(process.argv[2]));
console.log('Your output: ' + output);
Utilisation du module, le fichier C est chargé avec ceci:
var libfactorial = ffi.Library('./libfactorial', {
'factorial': [ 'uint64', [ 'int' ] ]
});
et ensuite accédé comme ceci:
//process.argv are the command line arguments
var argument = parseInt(process.argv[2]);
var output = libfactorial.factorial(argument);
Questions connexes
- 1. Interface beanstalkd/interface graphique
- 2. Interface hériter d'autres interface golang
- 3. 'QOAuth :: Interface & QOAuth :: Interface opérateur :: = (const QOAuth :: Interface &)' est privé
- 4. PHP interface Perl interface ou des liaisons
- 5. Interface de défilement iOS - Interface d'inscription FoodSpotting
- 6. Comment une interface implémente une interface Android
- 7. Extension d'une interface avec une autre interface
- 8. Delphi - interface comme une autre interface
- 9. Interface Python wifi.Cell.all (Interface) donnant l'erreur système
- 10. Interface (interface dans l'interface) dans Entity Framework
- 11. Interface de contournement implémentation d'une autre interface
- 12. interface externe
- 13. PropertyGrid + interface
- 14. MenuStrip Interface
- 15. Generic Interface
- 16. Interface Visualforce
- 17. Interface dactylographiée
- 18. Interface Tapuscrit
- 19. Interface Ambigu
- 20. Interface Android
- 21. Interface abstraite
- 22. Interface Conky
- 23. Interface Webkit
- 24. Interface Downcasting
- 25. interface sérialisable
- 26. Interface Namespace
- 27. Interface NotImplementedExceptions
- 28. Embedded Interface
- 29. Laravel Interface
- 30. @interface - Quoi?