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 avec la RTL dynamique [Trucs & Astuces]


Sujet :

C++Builder

  1. #1
    Futur Membre du Club
    Inscrit en
    Novembre 2003
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Novembre 2003
    Messages : 7
    Points : 7
    Points
    7
    Par défaut Problème avec la RTL dynamique
    Bonjour,

    Je suis en train de développer un calcul pour construire une bibliothèque de coups pour un jeu style jeu de dames.
    Le problème c'est que je devrais pouvoir faire tourner ce calcul sur des ordi qui n'ont pas Borland. J'ai donc enlevé toutes les options nécessaires pour pouvoir distribuer mon application n'importe ou. Mais si je décoche l'option Use Dynamic RTL dans l'onglet Linker, je n'obtiens plus du tout le meme résultat que normalement.
    Si je laisse la coche j'obtiens un résutlat correcte mais je ne peux pas distribuer mon calcul. Si j'enleve la coche je peux le distribuer mais les résultats sont totalement incohérent !

    Savez-vous d'où peut venir ce problème.

    Merci d'avance et bonne journée

  2. #2
    Membre averti Avatar de Flo.
    Homme Profil pro
    Inscrit en
    Mai 2002
    Messages
    379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mai 2002
    Messages : 379
    Points : 404
    Points
    404
    Par défaut
    Bonjour,

    j'ai exactement le même problème : en utiliser la rtl dynamique mon programme marche correctement. Quand je ne l'utilise plus mon programme buggue dans tous les sens.

    J'utilise une dll dans laquelle je faisais appel à la vcl. Quelqu'un m'a conseillé d'essayer ci-possible de laisser tomber la vcl dans ma dll (cette personne, sur ce forum, avait ainsi résolu un pb similaire).... Donc j'ai une dll casi ansi excepté les _fastcall & co (dans mon cas je pouvais travailler sans la vcl).

    Mais ça buggue toujours en n'utilisant pas la rtl. Ca m'énerve !!!!

    Sinon avec quelle version de builder travailles-tu ? Et utilises-tu une dll aussi ?

    Dans mon cas je suis persuadé que l'utilisation des string ansi dans la dll perturbe le compilo... Mais bon je ne suis pas un expert. Est-ce que tu utilises des string ansi aussi ?

    Flo.

  3. #3
    Rédacteur/Modérateur
    Avatar de Trap D
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    4 942
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 4 942
    Points : 6 498
    Points
    6 498
    Par défaut
    Salut

    J'utilise un antiquité C Builder 3 et il est précisé ceci :
    //---------------------------------------------------------------------------
    // Note importante à propos de la gestion de mémoire DLL quand votre DLL
    // utilise la version statique de la bibliothèque d'exécution :
    // Si votre DLL exporte des fonctions qui passent des objets chaînes (ou des
    // structures/classes contenant des chaînes imbriquées) comme paramètres ou
    // résultats de fonction, vous devrez ajouter la bibliothèque MEMMGR.LIB à la fois
    // au projet DLL et à tout autre projet qui utilise la DLL. Vous devrez aussi utiliser
    // MEMMGR.LIB si un autre projet qui utilise la DLL effectue des opérations de création
    // ou de suppression sur des classes non dérivées de TObject qui sont exportées depuis
    // la DLL. Ajouter MEMMGR.LIB à votre projet forcera la DLL et ses EXE appelants à
    // utiliser BORLNDMM.DLL comme gestionnaire de mémoire. Dans ce cas, le fichier
    // BORLNDMM.DLL devra être déployé avec votre DLL.
    //
    // Pour éviter d'utiliser BORLNDMM.DLL, passez les informations
    // de chaînes en utilisant "char *" ou des paramètres ShortString.
    //
    // Si votre DLL utilise la version dynamique de la RTL, vous n'avez pas besoin d'ajouter
    // explicitement MEMMGR.LIB étant donné que c'est effectué implicitement pour vous.
    //---------------------------------------------------------------------------

  4. #4
    Membre éprouvé

    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    1 163
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 1 163
    Points : 1 148
    Points
    1 148
    Par défaut
    Salut Trap D
    ceci est toujours indiqué dans le fichier principal d'une nouvelle DLL, même sous C++ Builder .
    Mais cela est pour la gestion de la mémoire et surtout des chaînes de caractères.

    Je ne sais même pas exactement ce qu'est la RTL mais je viens de me rappeler qu'un jour j'avais eu un problème similaire à celui lamojuli sans y trouver d'autre solution que de recocher RTL Dynamique...

  5. #5
    Nouveau membre du Club
    Inscrit en
    Juillet 2004
    Messages
    30
    Détails du profil
    Informations forums :
    Inscription : Juillet 2004
    Messages : 30
    Points : 31
    Points
    31
    Par défaut
    Bonjour :

    Pour ma part la seule chose qui ai changé dans le fait d activer ou non la RTL dynamique..
    C est que lorsque je n initialisais pas un pointeur. Dans un cas le programme tourné sans probleme .. dans l autre il plantait.
    Vous avez a sans doute utilisé une multitude de variables
    Peut etre est-ce la meme chose...C est un oubli tres courrent.

  6. #6
    Futur Membre du Club
    Inscrit en
    Novembre 2003
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Novembre 2003
    Messages : 7
    Points : 7
    Points
    7
    Par défaut
    J'ai enfin trouvé ! j'en ai un peu honte d'ailleurs, c'était à cause de l'initialisation d'une variable.
    Avec la rtl tout était initialisé à 0 et sans la rtl c'est une valeur aléatoire qui apparaissait, d'où le comportement très moyen de mon programme !
    Merci quand meme de votre aide et bonne journée

    Julien

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

Discussions similaires

  1. Réponses: 22
    Dernier message: 28/11/2007, 20h39
  2. probléme avec ma liste dynamique
    Par kebson dans le forum Général JavaScript
    Réponses: 13
    Dernier message: 25/07/2007, 11h23
  3. Problème avec les checkbox dynamiques
    Par 20304995 dans le forum Langage
    Réponses: 2
    Dernier message: 17/05/2007, 18h00
  4. Réponses: 6
    Dernier message: 20/02/2007, 17h00
  5. Problème avec les libraires dynamiques
    Par Harzoglups dans le forum C
    Réponses: 3
    Dernier message: 17/01/2006, 15h21

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