Précédent   Forum des professionnels en informatique > Général Développement > Programmation système > Windows
Windows Forum d'entraide sur la programmation Windows. Tutoriel API Windows
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 19/01/2012, 16h15   #1
Membre habitué
 
Inscription : mars 2009
Messages : 208
Détails du profil
Informations forums :
Inscription : mars 2009
Messages : 208
Points : 104
Points : 104
Par défaut soulever une interrogation

bonjour tous ,
j'intègre l'instruction suivante dans le traitement d'un message WM_CREATE :
plus loin ...
Code :
1
2
tampon=(char*)malloc(la_quantité_voulue);
puis lors du ttt du message WM_DESTROY :
ce qui me provoque une erreur à la fermeture de l'application.
Alors j'enlève cette dernière ligne et tout fonctionne bien !
Je pose alors la question suivante :
Y a-t-il fuite de mémoire ou Windows s'occupe-t-il de rétrocéder les octets alloués sur le tas ; car enfin ,la variable "tampon" est certes déclarée statique mais l'appel à "malloc()" consomme de la mémoire dynamique !?
exe2bin est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/02/2012, 09h56   #2
Expert Confirmé Sénior
 
Développeur informatique
Inscription : novembre 2006
Messages : 4 222
Détails du profil
Informations personnelles :
Localisation : France, Rhône (Rhône Alpes)

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : novembre 2006
Messages : 4 222
Points : 5 299
Points : 5 299
Salut d'après ce que je comprends le tableau char *tampon est déclaré dans l'événement WM_CREATE.
Or ce n'est pas là qu'il faut mettre cette déclaration mais plutôt avant le switch case
Code :
1
2
3
4
5
6
7
8
voLRESULT CALLBACK WindowProc(HWND hwnd,UINT uMsg,WPARAM wParam,LPARAM lParam);

{
static char *tampon;
switch (uMsg)
{case WM_CREATE:
tampon=(char*)malloc(x);
return 0;
__________________
Alea Jacta Est
Mat.M est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/02/2012, 15h12   #3
Expert Confirmé Sénior
 
Avatar de Médinoc
 
Homme
Développeur informatique
Inscription : septembre 2005
Messages : 21 481
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 28
Localisation : France

Informations professionnelles :
Activité : Développeur informatique
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : septembre 2005
Messages : 21 481
Points : 28 760
Points : 28 760
Envoyer un message via MSN à Médinoc
WM_CREATE n'est reçu qu'une fois, donc pas de suite.

Par contre, avec static, tu ne peux pas avoir deux fois la même fenêtre dans le même processus, ou bien les ennuis commencent.
__________________
SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

"Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
Apparently everyone.
-- Raymond Chen.
Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.
Médinoc est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 02h40.


 
 
 
 
Partenaires

Hébergement Web