dbgheap.c erreur assert - C++ - Programmation
Marsh Posté le 16-04-2005 à 23:59:54
said01 a écrit : |
hum, deux casts violents de suite, ca me fait un peu peur.
A mon avis ca marcherait mieux si tu faisais
Code :
|
bon ca fait allouer 256 caractères pour chaque entrée mais si tu veux vraiment stocker des COMBOBOXEXITEM dans ton vector y a pas trop le choix a mon avis.
tu pourrais faire comme ca :
Code :
|
mais la variable ficelle va être détruite a la fin du bloc d'instructions et pszText va pointer n'ilmporte quoi.
Une meilleure solution serait de te faire une structure qui contient les infos qui sont vraiment interressantes (dont le nom que tu veux récupérer) et faire un vector avec cette structure.
pourquoi tu te fait un vector de pointeurs de COMBOBOXEXITEM et pas un vector de COMBOBOXEXITEM ?
Marsh Posté le 16-04-2005 à 20:52:57
Bj tout le monde,
je vais essayer d'être clair mais ce n'est pas evident pour moi.
Voilà:
je travaille sous xp et VS C++ 6.
j'ai 1 appli qui ressemble à l'explorateur de Windows(fonctionalité basic...) .
AppWizard m'a enfait généré une SDI avec 1 CLeftView (CTreeView) et 1 CRightView(CListView).
Pour le moment la LeftView affiche tous les disk et rep de mon Pc et RightView affiche les Rep et Fich.. correspondants à l'élément sélectionné ds la TreeView.
Ensuite j'ai une CToolBar comme barre d'adresse qui contient une CComboBoxEx. Celle-ci étant synchronisée avec la TreeView comme dans Explorateur Win.
Comme je souhaite implementer le Drag&Dropp sur ma treeView, je crée dans ma LeftView une Variable COleDropTarget m_dropTarget pour ensuite lancer m_dropTarget.Register(this); dans le OnCreate et c'est là ou mon problème commence.
j'ai le message d'erreur suivant dés le 1er affichage de ma fenêtre
Debug Assertion Failed
Dbgheap.c Line 1017 _BLOCK_TYPE_IS_VALID(pHead->nBlockUse)
Si je commente la variable COleDropTarget je n'ai plus d'erreur.
La partie du code que je soupsonne concerne la synchronisation de la comboBox.
Détail
(mon algo n'est peut être pas le mieux qu'on puisse faire... désolé)
Pour synchroniser la Combo avec la TreeView. je procede en 2 étapes:
Etape 1:
Lors du 1er affichage de ma sdi, je sauvegarde les éléments de la combo ds un Vector.Celui-ci contient des ptr* sur des structures COMBOBOXEXITEM cbi( Ouf...).
Voici un exemple d'affichage de la combo et de la treeView
Exemple de la treeView Exemple de la Combo
Poste de travail Poste de travail
c:\ c:\
D:\ D:\
E:\ E:\
etc...
le Code de sauvegarde de la combo:
Etape 2:
Ensuite pour afficher dans la combo le rep développé ds la treeView j'interviens
dans lévénement OnSelchanged de cette dernière où je copies mon vectorSov(que je ne modifies jamais) dans 1 autre Vector tompon qui lui integrera les nouveaux éléments à afficher à chaque fois que l'événement se produit.
Exemple de la treeView Exemple de la Combo
Poste de travail Poste de travail
c:\ c:\
Rep1 Rep3
Rep2 SsRep3
Rep3 D:\
SsRep1 E:\
SsRep2
SsRep3
Rep4
Rep5
D:\
E:\
j'effectue bien le delete de mon Vector tompon.
Est-ce que quelqu'un pourrait m'éclairer SVP ?