Visual C++ Gestion de la mémoire... - Programmation
Marsh Posté le 08-06-2001 à 11:42:59
Moustaaki a écrit a écrit : Dans quels cas faut-il libérer la mémoire ? avec Quelle fonction (free, FreeMemory, ZeroMemory, pointer vers NULL ?) ? Pouvez vous me donner quelques exemples de chose à faire et à ne pas faire ? Par exple, est-ce qu'on doit libérer une structure de type WNDCLASS ? WIN32_FIND_DATA ? Doit-on libérer un HANDLE ? Et dans quels cas, Windows gère tout seul la désallocation ? |
Normalement tu dois desalouer tout ce que tu as alloue.
new -> delete
malloc, alloc, realloc -> free
ZeroMemory et mettre un pointeur a NULL ne deslloue rien...
Marsh Posté le 08-06-2001 à 11:44:47
donc à partir du moment où je n'ai fais aucun new et aucun alloc, c'est bon, ya rien à faire ?
un HANDLE truc, windows le gère tout seul ?
si c'est le cas, c'est cooll, c'est moin chiant que je ne l'imaginait...
Marsh Posté le 08-06-2001 à 12:48:03
Pour les handles sous toutes leurs formes, il faut peut-être consulter l'aide de la fonction utilisée pour voir quelle est la fonction de "fermeture".
En C "brut", hdc = GetDC(hWnd) se termine après usage par un ReleaseDC(hdc, hWnd); sinon problème ..
Idem pour GetObject(), pour les fontes, etc.. Quand on SelectPen(), faut le "releaser" ensuite, car ce sont des objets en mémoire qui occupent des ressources.
NB : je connais pas (encore) C++. Il doit y avoir l'équivalent de ces fonctions "basiques" du C/Windows.
Marsh Posté le 08-06-2001 à 15:40:38
j'aimerais juste savoir pour HANDLE !
LoadLibrary -> FreeLibrary
GetProcAdress -> ??
HANDLE -> rien ?
Marsh Posté le 08-06-2001 à 15:42:59
Moustaaki a écrit a écrit : j'aimerais juste savoir pour HANDLE ! LoadLibrary -> FreeLibrary GetProcAdress -> ?? HANDLE -> rien ? |
HANDLE -> CloseHandle
GetProcAdress -> rien, tu fais que lire une adresse
Marsh Posté le 08-06-2001 à 11:39:50
Dans quels cas faut-il libérer la mémoire ? avec Quelle fonction (free, FreeMemory, ZeroMemory, pointer vers NULL ?) ?
Pouvez vous me donner quelques exemples de chose à faire et à ne pas faire ?
Par exple, est-ce qu'on doit libérer une structure de type WNDCLASS ? WIN32_FIND_DATA ?
Doit-on libérer un HANDLE ?
Et dans quels cas, Windows gère tout seul la désallocation ?
[edit]--Message édité par Moustaaki--[/edit]