2017-07-13 7 views
0

Je me demande s'il est possible d'utiliser le module "os" en interne dans un module natif, sans le passer en paramètre depuis javascript. C'est l'un des principaux nœuds/modules d'électrons, donc je suppose qu'il devrait être disponible dans le module natif en interne d'une manière ou d'une autre.Utilisation du module "os" depuis un noeud natif (electron) Code C++

+1

Je ne pense pas que le code C++ du module os du noeud soit disponible pour être lié. Vous pouvez appeler JS à partir de C++, mais ce n'est en aucun cas efficace - voir https://stackoverflow.com/a/11387695/1218408 par exemple. La plupart de ce qui est dans le module OS du nœud est trivial à ré-implémenter. – ZachB

+0

Merci pour deux belles idées! Si vous pouvez fournir plus d'informations sur la façon de saisir facilement les fonctions du module OS en tant que code natif C++ sous la forme d'une réponse, je serai heureux de l'accepter) – Konstantin

Répondre

0

Expansion sur mon commentaire:

Pour autant que je sache, aucun du code du module de noeud "os" C++ est exporté pour être utilisé par tout autre code C++. L'exécution de JS à partir de C++ est possible, mais loin d'être efficace.

(Voir https://stackoverflow.com/a/11387695/1218408 pour un exemple de la façon de le faire.)

La plupart du module "os" du nœud est assez simple, et vous êtes probablement mieux de ré-implémenter tout ce dont vous avez besoin. La source pour cela est ici: https://github.com/nodejs/node/blob/master/src/node_os.cc

Une autre possibilité est d'appeler vos fonctions C++ avec le résultat de la fonction JS dont vous avez besoin. Par exemple, peut-être myFunction(os.loadavg(), "hello"). Simple mais pas super efficace