this != this



  • Hallo,

    ich hab ein riesengroßes Problem. Seit dem ich mein Projekt unter Vista compiliert hab, ist in einer Datei, in der ich den RaveReport nutze, der this-Zeiger nicht mehr überall der selbe 😮
    Ich habe mehrere Funktionen wo ich in einen Vector, der Member der Form ist, Objekte speicher.
    Nun treten einige RaveReport Ereignisse ein und in denen ist der Vector dann plötzlich leer.
    Im Debugger hab ich festgestellt, das in diesen Ereignisse der this-Zeiger ein anderer ist, als in den selbst erstellten Funktionen.

    Was nu? Ich bin am Verzweifeln. Hab schon von Debug auf Release gestellt, den Compiler-Speed-Fix deaktiviert... völlig egal, das Problem bleibt...

    OS: Vista, IDE: BDS 2006

    mfg
    xXx



  • Hallo

    Ich bezweifle das Vista this-Zeiger manipuliert...
    Es ist also eher ein Problem deines Codes, eventuell noch der Rave-Komponenten.

    bis bald
    akari



  • Also ich kanns mir nicht erklären. Unter XP lief das Problemlos. Ich hab jetzt einer anderen Klasse, die global Verfügbar ist nen Pointer spendiert und im Konstrukter der Form setze ich den Pointer.
    Mit dem klapps Problemlos. Erklären kann ich mir das aber nicht....

    mfg
    xXx



  • Wenn this variiert hast du vermutlich mehrere Instanzen. Setz doch einfach mal nen Breakpoint im Konstruktor und schau wie oft der aufgerufen wird.



  • Super, danke!
    Das war das Problem. In der Projekt.cpp stand zweimal das Application->CreateForm(..) drin.
    Das hat mir aber das BDS da rein geschrieben... Warum auch immer...

    mfg
    xXx


Anmelden zum Antworten