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.