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++Builder Discussion :

pointeur de fonction bizard?


Sujet :

C++Builder

  1. #1
    Membre confirmé
    Inscrit en
    Août 2005
    Messages
    136
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 136
    Par défaut pointeur de fonction bizard?
    Bonjour,

    Je suis en train de coder une dll qui doit s'interfacer avec un programme d'acquisition. Ma dll récupère des données via un oscilloscope sur l'usb. Pour interfacer ma dll avec cette oscillo, j'ai une dll.

    exe -> ma dll -> la dll de l'oscillo -> mesure physique.


    sauf que, au moment de passer un pointeur sur une fonction de callback, la dll de l'oscillo m'envoie ballader (la fonction d'affectation du pointeur retourne 0)... pas de plantage genre "la mémoire ne peut être read" etc...

    J'ai cherché de partout, rien trouvé! J'ai fait un exe qui apelle directement la dll, ca marche. du moment, que je fais l'apelle depuis une dll, ca marche plus.

    aurait il des différences, a quelques niveaux que ce soit, dans les pointeurs dans les dll???
    ou alors, plus simple, la dll de l'oscillo est buggé?

    merci d'avance

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Août 2006
    Messages
    190
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 190
    Par défaut
    Bonjour,

    As-tu vérifié que ta dll ai bien le même alignement que celle de la dll de l'oscillo (et par ailleur, ton executable devrait lui aussi avoir le même alignement)?

    Si tu ne connais pas l'alignement de la dll de l'oscillo, essaye les tous un a un.

    Cette option est placée à: 'Project' -> 'Options...' -> 'Advanced Compiler' -> 'Data Alignment'.

    Sinon, n'hésite pas à poster un code minimal illustrant ton problème

    Bonne journée

    Benjamin

  3. #3
    Membre confirmé
    Inscrit en
    Août 2005
    Messages
    136
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 136
    Par défaut
    Franchement, je pense pas que ca vienne de la, car j'ai le même alignement quand j'apelle la dll depuis mon exe.
    Je vais quand même faire les tests au cas ou!

    sinon, voila un code minimal:

    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
    16
    17
    18
     
    typedef void (CALLBACK *type)(
      short **overviewBuffers,
      short overflow,
      unsigned long triggeredAt,
      short triggered,
      short auto_stop,
      unsigned long nValues);
     
    void __stdcall MaFonction (short **Buffers, short overflow, unsigned long triggeredAt, short triggered, short auto_stop, unsigned long nValues );
    ...
    sResult = AffectFonctionRetour(DeviceHandle, (type)MaFonction);
    ...
     
    void __stdcall MaFonction (short **OverviewBuffers, short overflow, unsigned long triggeredAt, short triggered, short auto_stop, unsigned long nValues )
    {
    	return;
    }
    merci

    edit: l'alignement des données n'as rien changé...

Discussions similaires

  1. opengl et pointeur de fonction
    Par Oldhar dans le forum C
    Réponses: 5
    Dernier message: 06/11/2003, 23h56
  2. Declaration de fonction retournant un pointeur sur fonction
    Par pseudokifaitladifférence dans le forum C
    Réponses: 5
    Dernier message: 11/08/2003, 19h37
  3. Matrice de pointeurs de fonctions
    Par sebduth dans le forum C
    Réponses: 15
    Dernier message: 18/07/2003, 14h03
  4. [Kylix] Pointeur de fonctions
    Par _dack_ dans le forum EDI
    Réponses: 1
    Dernier message: 03/07/2003, 10h17
  5. pointeur de fonction
    Par kardath dans le forum C
    Réponses: 4
    Dernier message: 28/12/2002, 14h39

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