EXERCICE SIMPLE SUR LES DEVICE CONTEXT POUR UNE APLICATION DE DESSIN SIMPLISTE.

ymca2003 Messages postés 2070 Date d'inscription mardi 22 avril 2003 Statut Membre Dernière intervention 3 juillet 2006 - 13 févr. 2004 à 18:53
etaxi Messages postés 24 Date d'inscription vendredi 3 mars 2006 Statut Membre Dernière intervention 24 mars 2008 - 6 sept. 2007 à 09:34
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/20378-exercice-simple-sur-les-device-context-pour-une-aplication-de-dessin-simpliste

etaxi Messages postés 24 Date d'inscription vendredi 3 mars 2006 Statut Membre Dernière intervention 24 mars 2008
6 sept. 2007 à 09:34
D'accord, et comment recompiler en release?
Merci
etaxi.
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
20 août 2007 à 19:38
mfc42d.dll fait partie des outils de dev de VC++, ne doit pas être distribué.
Recompile en RELEASE et tu n'y seras plus lié.
etaxi Messages postés 24 Date d'inscription vendredi 3 mars 2006 Statut Membre Dernière intervention 24 mars 2008
20 août 2007 à 19:18
Ou est la dll mdc42d.dll ?
elle n'y est pas dans le zip!
ymca2003 Messages postés 2070 Date d'inscription mardi 22 avril 2003 Statut Membre Dernière intervention 3 juillet 2006 7
17 févr. 2004 à 18:51
Un petit ajout en ce qui concerne la fuite de ressource :

le problème ne vient pas du fait qu'il faut appeler DeleteObject (les MFC s'en charge), mais du fait que le l'objet à détruire se trouve toujours sélectionné dans un DC.

en fait à la sortie de la fonction il faut remettre dans le DC les objets qui y étaient au départ (pinceaux, crayont, polices...)
nico_inf Messages postés 3 Date d'inscription jeudi 12 février 2004 Statut Membre Dernière intervention 17 février 2004
17 févr. 2004 à 14:30
Maintenant on peu la compiler j'avais oublier de mettre les RES...
nico_inf Messages postés 3 Date d'inscription jeudi 12 février 2004 Statut Membre Dernière intervention 17 février 2004
17 févr. 2004 à 14:25
j'ai fai la mise a jour et j'ai bien constaté ce que tu me disais c'est cool pour l'info parce que dans mon bouquin ils en parlent pas une seconde .... comme quoi ....

THX ++
Hellaynnea Messages postés 57 Date d'inscription samedi 14 décembre 2002 Statut Membre Dernière intervention 2 mai 2005
17 févr. 2004 à 12:36
J'ai regardé ton code, mm si j'ai pas réussi a le compiler (un problème avec les ressources), il est pas mal
Bon j'aime pas les mfc mais bon c'est mon choix :)
sinon tu aurais pu limiter la zone de dessin (en utilisant une region par exemple) parce que la on peut dessiner sur la barre d'outil
++
Hellaynnea Messages postés 57 Date d'inscription samedi 14 décembre 2002 Statut Membre Dernière intervention 2 mai 2005
17 févr. 2004 à 12:28
Slt, c pas grave :d
Pour les fuites de mémoire un exemple tout simple :
void fonction(void)
{
char * buf = new char[2000];
return;
}

voila a chaque fois que tu executeras fonction(); tu perd 2Ko en mémoire ca c'est une fuite. Concernant les selectobject, etc... je sais pas trop comment windows gère ca, il faut simplement lorsque tu crée un object faire un DeleteObject derrière equivalent de notre delete [] buf pour notre exemple, sinon il reste en mémoire et a chaque fois qu'on appelle la fonction de dessin (genre 20 fois par seconde) on perd 2 octets (ou la taille de ton object, je sais plus si c'est exactement ca)
++
nico_inf Messages postés 3 Date d'inscription jeudi 12 février 2004 Statut Membre Dernière intervention 17 février 2004
17 févr. 2004 à 11:04
Désolé, on va dire que je suis nouveau et que je ne fai que déposer ce que l'on ma appris (appris tout seul dans les bouquins... :( ), je fai de mon mieux pour participer même si il n'y a pas bcp d'interet dans cette source.

par contre je veu bien que l'on m'explique ce que c'st les fuites de memoires comme sa je referai pas 2 fois l'erreur et je corrigerai ma source , parce que corriger ss savoir ..... c'est frustrant !!

et "Hellaynnea" sorry pour la faute .... :D

Meci et @+
Hellaynnea Messages postés 57 Date d'inscription samedi 14 décembre 2002 Statut Membre Dernière intervention 2 mai 2005
16 févr. 2004 à 12:06
Salut pour info c'est Device Context et pas "divise context" c'est juste parce que ca me faisait mal aux yeux
++
P.S. c'est totalement vrai pour les fuites de mémoires dues aux select objects jme suis déja fait avoir et pour retrouver une memory leak c'est souvent bien dur
ymca2003 Messages postés 2070 Date d'inscription mardi 22 avril 2003 Statut Membre Dernière intervention 3 juillet 2006 7
13 févr. 2004 à 18:53
un petit truc : il faut éviter de laisser des objets dans le GDI car cela provoque une fuite de ressources (sous Windows 9x et ME principalement, Windows 200 et XP étant moins restrictifs))

CPen* pOldPen = dc.SelectObject(&pinceau);

...utilisation de dc...

dc.SelectObject(pOldPen);
Rejoignez-nous