Klassentreffen



  • ok, beide threas verfolgen, wenn es was weiss bescheid sagen 😉



  • Bei ASSERT gilt: Wiederholen drücken und dann den Code angucken.
    Daran kann man meist schon sehen, was generell falsch ist - und dann kann euch auch eher wer erklären, was genau schief läuft.

    Also, zeigt mal. 🙂



  • { ASSERT(::IsWindow(m_hWnd)); return (int)::SendMessage(m_hWnd, LB_ADDSTRING, 0, (LPARAM)lpszItem); }
    

    So sieht's aus... Vielleicht kann ja irgendjemand was damit anfangen... 😕



  • Links unten im Debugger-Fenster müsste der Call-Stack zu finden sein - dort gehst du ein paar Ebenen nach oben, bis du zu deinem eigenen Code gelangst, und schaust dir an, was du dort verzapft hast.

    (ich vermute mal, daß du mit einem Dialog hantieren wolltest, bevor der sich fertig initialisiert hat (oder nachdem er sich beendet hat))



  • Call Stack??? meinst du das fensetr unten links? da steht igendein krauses zeug, wie "this" oder CWND oder classCListBox u.s.w. - aber was sagt uns das??? 😕

    das programm compiliert und started - ich verstehe nicht, wieso der compiler den Fehler (was immer das auch ist) nicht sieht!?! offensichtlich habe ich die variablen für den zugriff auf den dialog richtig deklariert?!?

    Was kann ich nun konkret tun? Irgendein zauberwort, mit dem es funktioniert...

    mir ist auch nicht bewußt, daß ich den dialog geschlossen hätte, zumindest wird alles noch angezeigt...



  • also ich hantiere bereits vorher ausgiebig mit dem dialog und da geht auch alles...





  • Nix Verstehen schrieb:

    Call Stack??? meinst du das fensetr unten links? da steht igendein krauses zeug, wie "this" oder CWND oder classCListBox u.s.w. - aber was sagt uns das??? 😕

    Am obersten Rand dieser Liste steht eine Dropdown-Liste mit dem Namen der aktuellen Funktion - dort kannst du dich durch den Call-Stack durchhangeln (die Funktionen sind in der Reihenfolge angeordnet, wie sie sich gegenseitig aufgerufen haben).

    Nix verstehn schrieb:

    also ich hantiere bereits vorher ausgiebig mit dem dialog und da geht auch alles...

    Hantierst du auch mit dem richtigen Dialog? Es ist schon oft genug vorgekommen, daß jemand auf einer neu angelegten Dialoginstanz rumgehackt hat und sich dann wundert, daß der existierende Dialog nichts davon bemerkt.



  • Vielen Dankfür Eure Antworten, aber ich geb's auf... 😞

    Ich hab' einfach keinerlei Ahnung nach was ich überhaupt suchen soll 😕

    Da steht überall einiges und den einen Teil kenn ich bereits (ist von mir & scheinbar korrekt) und den rest versteh ich nicht... 😞

    dieses ASSERT steht in einem File der MFC mit hunderten anderen ASSERTS, die jeweils unter einem inline Funktionausruf stehen - aber das alles sagt mir gar nichts - ich wollte doch nur auf meinen dialog zugreifen - warum macht der scheiß kompiler einem das so schwer schluchz... das hab' ich nicht verdient heul! ich tret den dämlichen compi in die tonne! 😡



  • estartu schrieb:

    Lies mal: http://www.c-plusplus.net/forum/viewtopic-var-t-is-120832.html 🙂

    Hey, haste das gesehen? War dummerweise der 9. Post, der geht gerne unter... 😉



  • ja - hab' ich gelesen - vieles wußte ich schon, schließlich programmier ich nicht erst seit gestern. nur dieser C++ kram läuft mir quer rein; ich kann mit dem ganzen konzept einfach nichts anfangen und würde auch niemals C++ programmieren, wenn ich nicht die MFC für die Dialoge bräuchte! 😞

    Und dieser nette Hinweiß: ...hangeln sie sich durch... ... irgendwo ist der fehler schon versteckt... nützt mir halt nichts, weil ich nicht mal weiß woran ich den fehler erkennen kann!??? 😕

    wie soll ich ihn da finden??? 😕



  • Dann zeig doch mal die erste Funktion, die von dir ist und wo ein Fensterhandle vorkommt. 🙂



  • CListBox::AddString(const char * 0x011f2e6c) line 669 + 46 bytes
    main_loop(unsigned long * 0x0012f544, __int64 * 0x0012f3fc, _finddatai64_t {...}, int 0x00000001, int 0x00000000, int 0x00000000, int 0x00000000, int 0x00000000, int 0x00000000) line 244
    CCleanUpWin32Dlg::OnCleanUp() line 400 + 88 bytes
    

    CCleanUpWin32Dlg ist der Dialog, den ich mit dem Resourceneditor gemacht habe und von dem die CListBox ein Teil ist...

    falls es was bringt, kann ich auch den vollständigen Inhalt des Stackfensters hier zeigen... :p



  • Sorry, ich hab' mich wohl mit dem Icon vertan... 😃



  • Mach doch mal nen Doppelklick auf CCleanUpWin32Dlg::OnCleanUp() und zeig, wo der Pfeil steht und mind. die Zeile vorher.



  • habe das Problem jetzt gelößt, indem ich aus der Funktion main_loop die Methode MainLopp gemacht habe. Diese Methode ist jetzt Teil des Dialogs und da kann ich jetzt auch problemlos auf die ListBox zugreifen.

    Nochmal vielen Dank für die ausführliche Beschäftigung mit meinem Problem! 🙂


Anmelden zum Antworten