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 de btnUnloadClick :
Code : Sélectionner tout - Visualiser dans une fenêtre à part hInstance = LoadLibrary("chemin_de_ma_dll_créée_en_1");
3/ ensuite j'execute mon application standard :
Code : Sélectionner tout - Visualiser dans une fenêtre à part FreeLibrary(hInstance);
- 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 :
Avez-vous une explication ?
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)
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.
Partager