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

C++ Discussion :

Glibmm (Glib::Module) Récupéré symbole


Sujet :

C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre émérite
    Homme Profil pro
    Recherche du travail
    Inscrit en
    Août 2004
    Messages
    561
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Recherche du travail

    Informations forums :
    Inscription : Août 2004
    Messages : 561
    Par défaut Glibmm (Glib::Module) Récupéré symbole
    Bonjour,

    J'essaye depuis quelque temps de comprendre la classe Glib::Module de Glibmm.

    Le problème c'est que je n'arrive pas a utiliser le symbole renvoyer.
    Voila l'archive: http://jmusicindies.free.fr/test.tar.bz2

    Précision: J'utilise GNU/Linux et scons pour le projet

    prog.cc: Version avec dlopen (fonctionne)
    test1-lib.cc: La librairie de test

    test1.cc: Version avec Glibmm (fonctionne pas)



    Merci d'avance!

  2. #2
    Expert confirmé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2003
    Messages
    3 549
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Décembre 2003
    Messages : 3 549
    Par défaut
    J'ai simplement fait scons et ça marche très bien...

    Après que ce soit dans prog.cc ou test1.cc, tu fais n'importe quoi avec le pointeur de fonction qui t'est retourné...

  3. #3
    Membre émérite
    Homme Profil pro
    Recherche du travail
    Inscrit en
    Août 2004
    Messages
    561
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Recherche du travail

    Informations forums :
    Inscription : Août 2004
    Messages : 561
    Par défaut
    Merci pour ta réponse

    Justement je sais pas comment les utilisés correctement. Tu aurai des conseils?

    test1.cc: Le code se compile mais ne s'exécute pas correctement. Il affiche pas "hello"

    prog.cc: C'est un code récupéré pour voir si la librairie fonctionnait bien

  4. #4
    Expert confirmé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2003
    Messages
    3 549
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Décembre 2003
    Messages : 3 549
    Par défaut
    Il affiche pas "hello"
    Normal, tu n'as pas appelée la fonction !
    Il faut caster ton pointeur vers le type pointeur de fonction qui correspond à la fonction en question et utiliser ce pointeur de fonction pour appeler ta fonction.

    Ici, donc, il faut caster en double(*)(double).

  5. #5
    Membre émérite
    Homme Profil pro
    Recherche du travail
    Inscrit en
    Août 2004
    Messages
    561
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Recherche du travail

    Informations forums :
    Inscription : Août 2004
    Messages : 561
    Par défaut
    Je suis débutant dans les pointers fonctions.
    Je comprend pas beaucoup. Donc j'aimerai un exemple SVP.

  6. #6
    Rédacteur
    Avatar de 3DArchi
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    7 634
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 7 634
    Par défaut
    Je ne connait pas Glib, mais hello_t devrait plutôt ressembler à ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    typedef double (*hello_t)(double);
    ....
    hello(2.0);
    vu que la définition dans test1-lib.cc est la suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    extern "C" double eths(double number)
    De la même façon, dans test1.cc, ce devrait être :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    double (*func)(double);
    ...
    double output = func(2.0);
    Ici, une entrée de la FAQ sur les pointeurs de fonctions.

Discussions similaires

  1. Réponses: 3
    Dernier message: 26/12/2012, 07h20
  2. installation module: symbole inconnu
    Par flo-1987 dans le forum Linux
    Réponses: 4
    Dernier message: 29/09/2009, 17h41
  3. Réponses: 2
    Dernier message: 15/11/2008, 16h58
  4. Récupéré mot de passe des modules
    Par giloo(94) dans le forum Sécurité
    Réponses: 2
    Dernier message: 07/02/2008, 11h19
  5. récupéré une variable entre 2 modules
    Par fabrice44 dans le forum Général Dotnet
    Réponses: 0
    Dernier message: 28/01/2008, 17h02

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