IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

NodeJS Discussion :

Utilisation de librairie en C


Sujet :

NodeJS

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2014
    Messages
    82
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2014
    Messages : 82
    Par défaut Utilisation de librairie en C
    Bonjour;
    J'aimerais savoir si quelqu’un c'est comment utiliser des librairies qui sont écrites en C pour les utiliser avec node.js car je ne trouve pas beaucoup d'exemples sur internet...en gros j'ai un fichier .h qui contient des fonctions que j'aimerais pouvoir utiliser avec node, j'ai aussi un fichier .dll que s’utilisait pour faire fonctionner mes fonctions en VB.
    Merci d'avance pour vos réponses.

  2. #2
    Membre chevronné

    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    311
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 311
    Par défaut
    Salut !

    Pour utiliser une lib c tu devras passer par l’écriture d’un addons C/C++ te permettant l’interopérabilité entre ta lib C et le javascript.
    Donc première étape : recompile les addons C/C++ du ce TUTO, tu devras installer Visual Studio Express, peut-être python et bidouiller tes variables d’environnements.
    Ensuite tu pourras ajouter des librairies externes a ton addon grace au fichier binding.gyp .

    La partie la plus difficile étant l'utilisation de la libUV qui permet d'exposer une fonction C synchrone en une fonction JavaScript Asynchrone

  3. #3
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2014
    Messages
    82
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2014
    Messages : 82
    Par défaut
    Merci pour ta réponse, tu n'aurais pas un exemple en C car dans le tuto que tu ma donner c'est en C++ et je ne connais pas du tout le C++ donc je n'arrive pas à faire ce que je veut...
    Voilà la librairie que je veut me servir AnaGate CAN API Library für Windows (32/64 bit) dans ce fichier j'ai trois .h, .dll et .lib donc si j'ai bien comprit j'ajoute dans mon code en C les #include pour utiliser mes librairie dans mon code en C? c'est tout ce qu'il faut faire? Car j'ai des erreurs donc je pense que je doit faire quelque chose avec mon .dll et .lib.
    Par contre ce que j'ai pas comprit c'est comment ajouter des librairies externes a mon addon grâce au fichier binding.gyp? Si tu aurait un exemple rapide a me montrée car moi dans mon binding.gyp j'ai que:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    {
        'targets': [
            {
                'target_name': 'hello',
                    'sources': [
                        'hello.c',
                    ],
            },
        ],
    }
    Donc je n'interviens pas directement sur ma librairie, quand tu dis "Ensuite tu pourras ajouter des librairies externes à ton addon grace au fichier binding.gyp" c'est que je pourrais utiliser directement mes fonctions de ma librairie avec node sans appeler les fonctions de ma librairie dans un fichier .c?
    Merci d'avance pour ta réponse

  4. #4
    Membre chevronné

    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    311
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 311
    Par défaut
    Ne brule pas les étapes
    Tous d’abord assure toi que tu disposes des outils nécessaire pour écrire et compilé un addon C++

    L’exécution de la commande node-gyp rebuild dans le répertoire de l’exemple hello_world se termine t’elle bien par gyp info ok ?
    Le fichier hello.node dans le sous-repertoire build\Release est-il bien créer ?

  5. #5
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2014
    Messages
    82
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2014
    Messages : 82
    Par défaut
    D'accord
    Oui j'ai effectuer c'est étape sa fonctionne bien, j'ai même réussi a effectuer se programme et a avoir mon résultat " world" sur node :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    #include <node.h>
     
    using namespace v8;
     
    void Method(const FunctionCallbackInfo<Value>& args) {
      Isolate* isolate = Isolate::GetCurrent();
      HandleScope scope(isolate);
      args.GetReturnValue().Set(String::NewFromUtf8(isolate, "world"));
    }
     
    void init(Handle<Object> exports) {
      NODE_SET_METHOD(exports, "hello", Method);
    }
     
    NODE_MODULE(addon, init)
    C'est quand je veut utiliser ma librairie que je bloque...

  6. #6
    Membre chevronné

    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    311
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 311
    Par défaut
    Ok quel fonction,de ta lib C soit-tu exposer ?
    quel est sa signature ?

Discussions similaires

  1. Utiliser une librairie
    Par BugFactory dans le forum API standards et tierces
    Réponses: 7
    Dernier message: 11/10/2005, 16h24
  2. Problème avec l'utilisation de librairies
    Par Aradesh dans le forum MFC
    Réponses: 3
    Dernier message: 01/08/2005, 15h00
  3. portage d'une appli utilisant la librairie word
    Par neonico dans le forum MFC
    Réponses: 4
    Dernier message: 23/02/2005, 23h48
  4. Creer et utiliser une librairie externe à l'exécutable
    Par multani dans le forum Autres éditeurs
    Réponses: 7
    Dernier message: 06/11/2003, 10h11
  5. Utiliser une librairie graphique
    Par Troopers dans le forum Linux
    Réponses: 6
    Dernier message: 22/08/2003, 11h22

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo