Den der har lavet wxMenu har med vilje gjort det sådan at du ikke kan bruge copy contructoren. Det kan der være mange gode grunde til som jeg ikke kender.
Du kan kopiere det som en pointer peger på ved at kalde copy-constructoren med den dereferencered pointer. Det vil sige
Ja du får stadig fejlen, fordi at du ikke kan bruge copy-constructoren i wxMenu. Det er ikke tilladt. Du må finde en anden måde at kopiere den menu på. Havde du haft adgang til copy-constructoren, så havde det virket.
Det giver ikke rigtigt mening at kopiere en menu, derfor har wxWindows sørget for at du ikke kan, ved at gøre copy-constructoren og assignment operatoren private.
For at finde en løsning bliver vi nødt til at vide hvad det er du vil.
Grunden hertil er at jeg får en heap fejl og jeg troede at det var den måde jeg oprettet koden på der forudsagede det, men nu tror jeg ikke at det var den, men jeg har ikke fundet fejlen
switch(evt.GetId()) { ... case mnuPopUpDeleteTrack: id = evt.GetInt(); DOLOG << "Got " << id << endl; deleteTrack(id); break; } }
og her slettes den
void wxTracksPanel::deleteTrack(int id) {
// TODO fix that occur when deleting a track
vector<wxTrack*>::iterator tIter = tracks.begin(); // tracks er en vector
while(tIter != tracks.end()) { int t = (*tIter)->getId(); // henter dens id ud if(t == id) { (*tIter)->removeSelection(); tracksSizer->Remove((*tIter)); delete *tIter; tracks.erase(tIter); break; }
tIter++; }
tracksSizer->Layout(); }
Nogen der kan spotte hvad der er galt???
Den giver følgende fejl: HEAP[MuSeq.exe]: HEAP: Free Heap block e95418 modified at e95738 after it was freed Windows has triggered a breakpoint in MuSeq.exe.
This may be due to a corruption of the heap, and indicates a bug in MuSeq.exe or any of the DLLs it has loaded.
The output window may have more diagnostic information The program '[756] MuSeq.exe: Native' has exited with code 0 (0x0).
står der: "All menus except the popup ones must be created on the heap. All menus attached to menubar or to another menu will be deleted by their parent when it is deleted. As the frame menubar is deleted by the frame itself, it means that normally all menus used are deleted automatically."
Jeg kan ikke umiddelbart se at der er noget galt med din kode, men du skal måske slet ikke slette menu'en igen?
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.