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 :

C++ builder Callback


Sujet :

C++

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mars 2012
    Messages
    18
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2012
    Messages : 18
    Par d�faut C++ builder Callback
    Bonjour,

    Je suis entrain de d�velopper une application avec C++ builder xe qui utilise quelques DLL de communication.
    A un moment j'ai besoin d'appel� une Callback dans une des DLL pour mettre � jour une map dans maClass:


    maClass.h
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    	static void CALLBACK CallbackAsynchEvent(unsigned char* Data);
    maClass.cpp

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
     
    void CALLBACK CallbackAsynchEvent(unsigned char* Data)
    {
    // Utiliser Data pour mettre à jour les données de maClass.
    }
    L�appel de la fonction s'effectue bien. Le souci est que j'aimerais utiliser Data pour mettre � jour une variable membre de maClass. Lorsque j'essai, C++ builder me marque " E2451 Undefined symbol XXXX"

    Merci pour votre aide.

  2. #2
    Expert �minent

    Femme Profil pro
    Ing�nieur d�veloppement logiciels
    Inscrit en
    Juin 2007
    Messages
    5 202
    D�tails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (�le de France)

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

    Informations forums :
    Inscription : Juin 2007
    Messages : 5 202
    Par d�faut
    undefined.

    il faut avoir l'include correspondant, et surtout, lier avec.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Mars 2012
    Messages
    18
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2012
    Messages : 18
    Par d�faut
    Merci pour ta r�ponse.

    J'ai pas bien compris. Que'est ce qu'il faut lier ?

    Je pense avoir mis tous les include qu'il faut, vu que dans maClass j'utilise la variable membre XXXX dans une autre fonction, et que C++ builder ne me mettait pas "E2451 Undefined symbol XXXX" avant.

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Mars 2012
    Messages
    18
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2012
    Messages : 18
    Par d�faut
    on aurait dis que la callback ne conne pas maClass. En effet, elle ne conne pas les fonction de cette class non plus.
    Quelqu'un a une id�e ?

  5. #5
    Membre Expert
    Homme Profil pro
    Inscrit en
    D�cembre 2010
    Messages
    734
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : D�cembre 2010
    Messages : 734
    Par d�faut
    La fonction callback �tant statique, elle ne conna�t pas les donn�es membre de ta classe. Ce n'est pas li� � ta DLL, mais au fait d'essayer d'adresser une donn�e membre depuis une fonction statique. D'une fonction statique on ne peut acc�der qu'� des donn�es statiques ou � des donn�es locales � la fonction.

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Mars 2012
    Messages
    18
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2012
    Messages : 18
    Par d�faut
    Le probl�me est le m�me pour les callbacks qui ne sont pas static.
    J'ai viens d'essay� sur d'autre Callbaks non static que j'utilise dans une autre partie du code.
    Si vous avez besoin de plus d'�l�ments je peux expliquer un peu plus en d�tail.

  7. #7
    Membre Expert
    Homme Profil pro
    Inscrit en
    D�cembre 2010
    Messages
    734
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : D�cembre 2010
    Messages : 734
    Par d�faut
    Attention, je crois qu'il y a collision entre plusieurs notions. Peut-�tre une impr�cision de vocabulaire de ma part.
    statique dans mon pr�c�dent post veut dire que la fonction n'est pas une fonction d'instance (li�e � une instance de classe) et n'a pas de rapport avec une instance donn�e de ta classe. (aucun rapport avec le mot-clef static)
    Les callback ne peuvent pas �tre d�finis en tant que fonction membre car �tre une fonction membre influence le type du pointeur de fonction (� cause du pointeur this cach�, pour faire court). Comme la DLL ne conna�t pas ta classe elle ne peut appeler en callback que des fonctions libres.
    Or � l'int�rieur d'une fonction libre on est forc�ment en contexte statique, au sens qu'on n'est pas li� � une instance. Dans ce contexte, les membres donn�es de ta classe ne sont pas d�finis.
    C'est probablement la raison de ton erreur de compilation. Sans voir le code effectif je ne peux pas t'en dire plus.

  8. #8
    Membre averti
    Profil pro
    Inscrit en
    Mars 2012
    Messages
    18
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2012
    Messages : 18
    Par d�faut
    Je comprends mieux le probl�me.
    Apparemment il y a "un idiome" pour contourner le probl�me:
    http://stackoverflow.com/questions/1...terface-from-c
    Je vais essayer d'appliquer cette m�thode et voir ce que �a donne.

  9. #9
    Membre averti
    Profil pro
    Inscrit en
    Mars 2012
    Messages
    18
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2012
    Messages : 18
    Par d�faut
    J'ai utilis� la m�thode que j'ai cit� dans mon pr�c�dent post.
    Merci pour votre aide

  10. #10
    Expert �minent

    Femme Profil pro
    Ing�nieur d�veloppement logiciels
    Inscrit en
    Juin 2007
    Messages
    5 202
    D�tails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (�le de France)

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

    Informations forums :
    Inscription : Juin 2007
    Messages : 5 202
    Par d�faut
    Si ton probl�me est r�solu, clique donc sur le en bas de la page

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. Choisir Visual c++ ou Borland C++Builder ?
    Par DevEric dans le forum Choisir un environnement de d�veloppement
    R�ponses: 31
    Dernier message: 14/06/2007, 23h48
  2. Outils, cours et NOUVEAUX tutoriels pour Borland C++Builder
    Par hiko-seijuro dans le forum C++Builder
    R�ponses: 10
    Dernier message: 12/03/2006, 22h33
  3. c++ builder JavaDoc :)
    Par JEG dans le forum C++Builder
    R�ponses: 8
    Dernier message: 08/06/2002, 13h31
  4. Documentation DirectX dans C++Builder 3
    Par srvremi dans le forum DirectX
    R�ponses: 1
    Dernier message: 26/04/2002, 09h59
  5. R�ponses: 2
    Dernier message: 20/03/2002, 23h01

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