Taron31
Messages postés199Date d'inscriptionvendredi 16 avril 2004StatutMembreDernière intervention28 février 2008
-
17 avril 2006 à 14:10
Taron31
Messages postés199Date d'inscriptionvendredi 16 avril 2004StatutMembreDernière intervention28 février 2008
-
17 avril 2006 à 15:01
Bonjour, je suis confronté à un problème relativement étrange depuis hier et je ne parviens pas à le résoudre. En effet, je fais un programme avec API Win32 avec une fenêtre principale et quelques boîtes de dialogue. Au cours de quelques évenements, ma MainWndProc de ma fenêtre principale est censée ajouter à une liste des noms de programmes (lProc.push_front("winamp.exe") par ex) et ce plusieurs fois suivant le nombre d'évenements. Et je souhaiterais me servir de cette liste dans une autre DlgProc, celle-ci censée afficher chaque const char* de ma liste (donc les noms de programmes) dans une list box, mais le problème étant que la liste se retrouve effacée ! C'est-à-dire que je ne peux plus récupérer aucun élément de ma liste sans savoir pourquoi, j'ai même fait un test en essayant d'afficher le premier élément de ma liste (censé contenir le nom d'un programme) avec MessageBox(NULL, *lProc.begin(), "uih", MB_OK); et j'obtiens une chaîne non-valide. Je ne comprends vraiment pas, car je ne fais qu'ajouter des éléments dans ma liste dans la WndProc et les afficher (essayer) dans ma DlgProc. En somme ma DlgProc n'a pas accés à ma liste (elle pourtant déclarée en globale !)... Je sais ça peut paraître bizzard et j'espère m'être fait comprendre.
Si vous aviez une idée (??)
Merci
___________________
MVS - Most Valuable Student ( Microsoft)
vecchio56
Messages postés6535Date d'inscriptionlundi 16 décembre 2002StatutMembreDernière intervention22 août 201014 17 avril 2006 à 14:27
Ou sont alloués les const char* que tu ajoutes dans ta list? Si c'est un buffer local, c'est normal qu'en sortant de la fonction elle ne pointent plus au bon endroit. Si tu veux pas te fatiguer, fais une list<string>, l'allocation sera faite automatiquement