Télécharger le zip
Bonjour, Un ptit conseil deja : Crée un projet vide pour ne pas avoir ces "stdafx.xx" paske c chiant (tu peux ps compiler sans) et c moche (je trouve).Et ensuite une kestion : Pkoi utiliser tchar.h et donc _tWinMain, TCHAR...Etc ? Voila, merci ++
Oula, jviens de regarder le code, et j'ai maintenant kelk ptites ramark :int APIENTRY _tWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPTSTR lpCmdLine, int nCmdShow){ hHeap=GetProcessHeap(); //obtenir le heap de l'application WNDCLASSEX wcex; wcex.cbSize = sizeof(WNDCLASSEX); wcex.style = CS_HREDRAW | CS_VREDRAW; wcex.lpfnWndProc = (WNDPROC)WndProc; wcex.cbClsExtra = 0; wcex.cbWndExtra = 0; wcex.hInstance = hInstance; wcex.hIcon = LoadIcon(hInstance, (LPCTSTR)IDI_FENETRES); wcex.hCursor = LoadCursor(NULL, IDC_ARROW); wcex.hbrBackground = (HBRUSH)(COLOR_WINDOW+1); wcex.lpszMenuName = NULL; wcex.lpszClassName = "FENETRES"; wcex.hIconSm = LoadIcon(wcex.hInstance, (LPCTSTR)IDI_SMALL); if(!RegisterClassEx(&wcex))return(0); //enregistrement de la classe de la fenetre DialogBox(hInstance, MAKEINTRESOURCE(IDD_DIALOG1), NULL, (DLGPROC)Dialog); //chargement de la boite de dialogue return (0);}Pkoi tu initialise une structure WNDCLASSEX ? Tu appelles ici une dialogbox, ca n'a rien a faire ici !Ensuite, ds ton appel a la fonction DialogBox, Tu peux eviter le cast du 4eme param en prototypant bien ta fonction : BOOL CALLBACK DlgProc(..) et non LRESULT...WM_INITDIALOG doit renvoyer 1, donc TRUE et non pas FALSE.Bon ben c tt pour le moment.++
Salut,Pour les en-têtes précompilés, c'est vrai que c'est interessant pour les gros projets, mais la on ne peut pas dire que cce soit vraiment le cas.wcex.lpszClassName = "FENETRES"; ce genre d'affectation se fait a la déclaration, sinon utiliser strcpyPourquoitu utilises des new et delete, puisque tu as en heap?
hassan c youness je pense que les remarques données par les amis sont profitables.je te remercie pr l'exemple. Ms les amis un peu d'encouragemnet pr Hassan. :)
-reponse pour vacchio56: merci pour ta participation et tes conseils, generalement j'utilise les fonctions de heap pour les chaines qui sont longues ou demandent une reallocation frequente, et les fonctions standard comme "new" pour les chaines courtes. c'est pas juste comme methode?-reponse pour youness: merci mon ami.-reponse pour alexman: desolé, je perds pas mon temps à lire tes remarques et tes commentaires, l'autre weekend je t'ai ecris un long message pour t'expliquer beaucoup de choses, et critiquer un peu ta participation dans ce site. et par curiosité j'ai parti voir ton profile et j'ai jeté un coup d'oeil sur tes sources et tes reponses aux forums, et tout ce que j'ai fait après c'est effacer mn message sans te l'envoyer, et decider de te negliger.merci pour ta comprhension
whaa, ca me met un coup serieux, ok je comprends, jsui dsl donc de ma participation au site.Aurevoir
pffff, vous allez encore vous disputez comme ça longtemps ?? Vous etes tous des programmeurs! Nous sommes tous une unité alors aider vous et écouter vous mutuellement bon sang!!! N'agissez pas comme les trois quarts de gens débiles de ce monde!!....allez, réconsillié vous! Entre parenthèse, moi aussi quand je met un commentaire, on me le "critique", mais ce n'est jamais une mauvaise critique c'est toujours pour essayer que je fasse mieux!! Faut pas s'enerver pour si peu bon sang....le potentiel de chacun est grand, et si on partage ce que l'on sait, on y ai tous gagnant ! :-))Voila, dsl, 'pouvais pas supporté de voir une querelle sur ce genre de site!! bisous a tous!! :-)Gendal67, a votre service !
tu as tout a fait raison gendal, moi et alexman, nous avons deja regle ce probleme par des messages en pive.je vois que vecchio n'a pas encore repondu a ma kestion...
Enfin on peut dire que tout le monde est satisfait. Le calme régne...buffffff....C cool.je veux juste poser une question concernant les BDs et VC++? Un tuto ou un exple?
vaut mieux poser ta kestion ds le forum, ca te permetra davoir + de reponses
Désolé j'avais pas vu qu'il y avait une question... En fait je ne sais pas vraiment, mais je pense qu'un new est en fait un HeapAlloc caché, donc autant appeler directement HeapAlloc. Dans tous les cas je pense que ce n'est pas très propre de mélanger des new et des HeapAlloc, de même qu'on ne mélange pas des new et des malloc
j'ai lu ds des articles en MSDN que les fonction standard d'allocation (ex:new ) sont plus rapide que les fonctions de heap, qui peuvent causer des problemes si on les appelle tres souvent.je te donnerai les titres des articles +tardmerci
new appelle HeapAlloc().On peut regrouper en 1 seul appel:char *p = new char[12];char *c = (char*) HeapAlloc(hHeap,0, len);peut devenir en + rapide:char *p, *c;char *p = (char*) HeapAlloc(hHeap,0, len + 12);c = p + 12;// algo iciHeapFree(hHeap, 0, p);
char *p, *c;char *p = (char*) HeapAlloc(hHeap,0, len + 12);c = p + 12;// algo iciHeapFree(hHeap, 0, p);erreur: p est déja défini dans cette portée!
enleve '*' en trop animal !!! si c'est tout ce que t'avais a corriger....
je pense que le code est juste sans aucune modification, en plus on peut allouer tout l'espace (len+12) pour 'p' ds des parties du code ou` on ne fait pas referance a` 'c' (et son contenu n'a pas d'importance), sinon on se limite a` la taille 12.merci
c'etait du au 'copier coller', fallait bien sur:char *p, *c;p = (char*) HeapAlloc(hHeap,0, len + 12);c = p + 12;// algo iciHeapFree(hHeap, 0, p);
oui biensur, personnellement je peux pas ecrire un message juste pour signalier une telle erreur :)) 'te fache pas vecchio:)'... j'ai une autre question pour toi brunews, est ce qu'on peut nous servir des données de la structure MEMORY_BASIC_INFORMATION (remplie par VirtualQueryEx) pour connaitre la taille de la memoire physique consommée par un processus?autrement dit est ce que les informations de la memoire virtuelle peuvent nous indiquer la taille de la memoire physique?je ne peux pas utiliser directement GetProcessMemoryInfo (de psapi.dll) parcequ'elle n'est inclue que ds winNTmerci
Utilise GlobalMemoryStatus() pour connaitre la taille de la memoire physique. La valeur sera erronee si tu as un PC avec + de 4 Go de RAM.
ma kestion est :'est ce qu'on peut nous servir des données de la structure MEMORY_BASIC_INFORMATION (remplie par VirtualQueryEx) pour connaitre la taille de la memoire physique consommée par un processus?'consommée par un seul processus (exemple: Vstudio.net environ 34Mo) et non pas la taille de la memoire physique du PC.merci
Cette structure sert a explorer ton espace d'adressage, faudraensuite interpreter les donnees.Regarde dans Richter, il y a des exemples entiers sur l'analyse de la memoire virtuelle.
Se souvenir du profil
Mot de passe oublié ? / Activation de compteCréer un compte