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 :

Problème création de DLL


Sujet :

C++Builder

  1. #1
    Candidat au Club
    Inscrit en
    Août 2003
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Août 2003
    Messages : 3
    Points : 2
    Points
    2
    Par défaut Problème création de DLL
    Bonjour ! Gros problème avec les DLL :

    J'ai créé une application, qui comporte un constructeur A, puis une DLL pour cette même application, qui comporte une fonction prenant comme paramètre un pointeur sur un tel objet A. Cette fonction sert à modifier des variables membres de l'objet A. Soit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    void ma_fonction(A * mon_objet)
        {
        mon_objet->variable1 = "sfdsd";
        mon_objet->variable2 = "dfgnsdngnf";
        }
    Tout marchait correctement, mon appli accédait sans aucun problème à la fonction contenue dans la DLL et l'objet A passé en paramètres était modifié avec succès.

    Jusqu'à aujourd'hui ! Maintenant, dès que j'essaie de modifier le code du constructeur A, mon application plante, ou "merde", même lorsque je recompile la DLL avec le nouveau code! Certaines variables de l'objet A sont modifiées, d'autres pas... Je ne comprends plus rien!

    Est-ce que quelqu'un peut m'aider ????... Merci beaucoup d'avance !!! :-)

    Sylvain

  2. #2
    Membre régulier
    Avatar de bebeours
    Profil pro
    Inscrit en
    Septembre 2002
    Messages
    103
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2002
    Messages : 103
    Points : 123
    Points
    123
    Par défaut
    Vérifie que tu utilises bien le même code dans ta DLL et dans ton appli, en particulier la définition de ta classe A.

    Essaie de supprimer tous les .obj et autres fichiers compilés dans ton répertoire de compilation de ta DLL.

  3. #3
    Candidat au Club
    Inscrit en
    Août 2003
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Août 2003
    Messages : 3
    Points : 2
    Points
    2
    Par défaut
    Hélas, c'est bien le même code que j'utilise, et j'ai déjà tenté de supprimer les OBJ, sans succès.

    Je devrais ajouter aussi que, bizarrement, si j'appelle une seconde fois
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ma_fonction(*mon_objet)
    l'objet passé en paramètres est modifié correctement !...



    Merci pour votre aide dans tous les cas. ;-)

    Sylvain

  4. #4
    Membre à l'essai
    Inscrit en
    Juillet 2002
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Juillet 2002
    Messages : 16
    Points : 22
    Points
    22
    Par défaut
    Vérifie que ton appli et ta DLL ont les mêmes options de compilation, notament en ce qui concerne l'alignement des structures (et donc des classes).
    Il y a trois sortes d'informaticiens : ceux qui savent compter et ceux qui ne savent pas compter.

  5. #5
    Candidat au Club
    Inscrit en
    Août 2003
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Août 2003
    Messages : 3
    Points : 2
    Points
    2
    Par défaut
    Apparemment ça fonctionne, merci.

    Soit :

    - dans "Projet > Options > Options du compilateur avancées", "QuadWord" est coché par défaut (c'était le cas pour l'appli ET la DLL) ; j'ai changé au hasard pour "Byte" et à l'éxécution, le même code qui plantait a correctement fonctionné.

    Cependant j'ai fait ensuite quelques modifs en plus grand nombre, mais en compilant l'appli et la DLL avec "Byte" coché, ça plantait de nouveau. Je les ai alors compilés en cochant "DoubleWord" et tout semble fonctionner à nouveau.

    On va bien voir comment ça évolue ainsi...

    NB: ne pas oublier de choisir "Construire" au lieu de "Run" à la première éxécution après le changement de paramètres, afin que toutes les unités soient recompilées.

    Sylvain

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Problème création DLL
    Par sniperpro dans le forum Langage
    Réponses: 10
    Dernier message: 05/10/2011, 10h11
  2. Problème de création de DLL
    Par Gouyon dans le forum Langage
    Réponses: 6
    Dernier message: 08/09/2010, 13h27
  3. Problème Création DLL
    Par Fabien25C dans le forum Débuter
    Réponses: 1
    Dernier message: 25/11/2009, 13h57
  4. Réponses: 10
    Dernier message: 17/08/2009, 12h39
  5. Problème création de DLL avec CString
    Par loupdeau dans le forum MFC
    Réponses: 3
    Dernier message: 21/07/2005, 20h55

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