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 :

CodeGuard


Sujet :

C++Builder

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    21
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations forums :
    Inscription : Octobre 2002
    Messages : 21
    Par défaut CodeGuard
    Bonjour,

    J'ai un pb avec codeguard :

    1/ je créé une application DLL avec l'expert DLL vierge (il y a juste la fonction DllEntryPoint) que je compile avec l'option codeguard

    2/ je créé une application standard avec 2 boutons : btnLoad et btnUnload
    code de btnLoadClick:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    hInstance = LoadLibrary("chemin_de_ma_dll_créée_en_1");
    code de btnUnloadClick :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    FreeLibrary(hInstance);
    3/ ensuite j'execute mon application standard :
    - je clique sur le bouton Load -> OK : hInstance est non null
    - je clique sur le bouton Unload -> OK : FreeLibrary retourne non null
    - je quitte l'application -> codeguard me détecte une erreur :

    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
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    Erreur 00001. 0x300010 (Thread 0x051C):
    Perte de ressource : bloc mémoire (0x1055DC0) jamais libéré
     
    bloc mémoire (0x01055DC0) [taille : 200 octets] a été alloué avec SysGetMem
    Arbre d'appels :
       0x0126850C
       0x01268565
       0x0126A808
       0x0126A069
       0x0CD0A513(=CG32.DLL:0x01:009513)
       0x012615DF
     
    ------------------------------------------
    Fonctions eppelées :
     fflush (1 fois)
     delete (46 fois)
     vsnprintf (4 fois)
     lstrlenA (1 fois)
     lstrcpyA (4 fois)
     SysReallocMem (2 fois)
     SysFreeMem (527 fois)
     SysGetMem (528 fois)
     realloc (1 fois)
     memcpy (2 fois)
     delete[] (2 fois)
     free (27 fois)
     new[] (14 fois)
     new (51 fois)
     calloc (5 fois)
     malloc (21 fois)
    Types de ressources utilisés :
     tableau d'objets (14 allocs, 13 max)
     objet (51 allocs, 39 max)
     bloc mémoire (555 allocs, 340 max)
    Avez-vous une explication ?
    Quand je compile sans codeguard, je n'ai plus l'erreur :
    - Soit il y a effectivement un pb et seul codeguard le voit
    - Soit il n'y a pas de pb et c'est codeguard qui bug

    Dans ce dernier cas, pour poursuivre mon développement, je serais contrait de désactiver codeguard, ce qui m'ennuit car c'est bien pratique comme outils...

    Mercin pour votre aide,

    PurL.

  2. #2
    Nouveau candidat au Club
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Décembre 2003
    Messages : 2
    Par défaut
    J'ai pensé à ça: il y a plus de "new" que de "delete". Peut-être que cela expliquerait pourquoi CodeGuard prévient et pas C++Builder...

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    21
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations forums :
    Inscription : Octobre 2002
    Messages : 21
    Par défaut
    Bon apprement j'ai trouvé :

    Dans les options du projet DLL / onglet lieur, il faut cocher "Utiliser la RTL dynamique"

    PurL

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

Discussions similaires

  1. Codeguard dans une DLL utilisé par du code managé
    Par Volfoni dans le forum C++Builder
    Réponses: 0
    Dernier message: 06/11/2008, 17h06
  2. CodeGuard et Builder 2006
    Par yvslms dans le forum C++Builder
    Réponses: 2
    Dernier message: 23/07/2007, 21h54
  3. Resource leak avec CodeGuard
    Par moudel dans le forum C++Builder
    Réponses: 1
    Dernier message: 16/05/2007, 11h36
  4. CodeGuard sur machine de production DLL nécessaires
    Par Fbartolo dans le forum C++Builder
    Réponses: 3
    Dernier message: 11/06/2006, 00h06
  5. CodeGuard
    Par Gilles Louïse dans le forum C++Builder
    Réponses: 2
    Dernier message: 26/08/2005, 11h13

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