Es ist zum heulen - Einmal geht WM_SETTEXT, dann wieder nicht...



  • Hey!

    Ich verzweifle. So etwas habe ich lange nicht mehr erlebt. Folgender Code (Funktion):

    SendMessage(editHandle, WM_SETTEXT, 0, reinterpret_cast<LPARAM>("idle")); // Debug
    
    std::string data = DownloadData("url...");
    
    if(data.empty())
        SendMessage(editHandle, WM_SETTEXT, 0, reinterpret_cast<LPARAM>("failed"));
    else
    {
        MessageBox(0, data.c_str(), 0, 0); // Debug
        SendMessage(editHandle, WM_SETTEXT, 0, reinterpret_cast<LPARAM>(data.c_str()));
    }
    

    Was mache ich falsch?
    Es ist mysteriös:

    Erster Funktionsaufruf: EditBox enthält "idle", MessageBox() zeigt mir die richtigen Daten, dann schließe ich sie, aber die EditBox enthält weiterhin nur "idle".

    Zweiter Funktionsaufruf: EditBox enthält "idle", MessageBox() zeigt mir die Daten, dann schließe ich sie, und die EditBox enthält die richtigen Daten!

    😕

    Wie kann das sein? Und noch komischer:
    Beim dritten Funktionsaufruf sehe ich wieder nur "idle" in der EditBox. Bis hin zum x. Aufruf, bis es dann irgendwann wieder funktioniert.

    Mysteriös ist, dass es immer beim ersten Mal nicht klappt, dann schon, und dann wieder ewig nicht...

    What the heck?



  • Könnte das ein Windows-Bug sein? Denn:
    Jetzt habe ich mal Spy++ angefeuert und die Dialog-Messages angucken wollen, doch plötzlich hat es immer funktioniert. Keine Probleme mehr.
    Dann schließe ich Spy++ und starte meine Anwendung neu.
    Jetzt gibt es keine Probleme mehr!

    Vorhin habe ich es aber (ehrlich) hunderte Male getestet...

    Noch was fällt mir ein:
    Als ich die heruntergeladenen Daten (eine .txt Datei) leicht abgeändert habe (ein 'a' am Ende hinzugefügt), gab es keine Probleme mehr...
    Dann hab ich das 'a' wieder weggemacht und es ging wieder nicht ordentlich!
    Nur mit ganz bestimmten Daten, aber auch die haben am Vortag ohne Probleme funktioniert. Ist ja nur Text...



  • BitteHilf schrieb:

    Könnte das ein Windows-Bug sein? Denn:
    Jetzt habe ich mal Spy++ angefeuert und die Dialog-Messages angucken wollen, doch plötzlich hat es immer funktioniert. Keine Probleme mehr.
    Dann schließe ich Spy++ und starte meine Anwendung neu.
    Jetzt gibt es keine Probleme mehr!

    Sowas kenne ich, hat aber eher was mit deiner IDE als mit Windows was zu tun. Manchmal braucht mein Visual Studio auch ein "Projekt neu erstellen", damit alles richtig läuft (ich denke, es "übersieht" manchmal, dass es Änderungen gab und neu kompiliert werden muss).

    BitteHilf schrieb:

    Noch was fällt mir ein:
    Als ich die heruntergeladenen Daten (eine .txt Datei) leicht abgeändert habe (ein 'a' am Ende hinzugefügt), gab es keine Probleme mehr...
    Dann hab ich das 'a' wieder weggemacht und es ging wieder nicht ordentlich!
    Nur mit ganz bestimmten Daten, aber auch die haben am Vortag ohne Probleme funktioniert. Ist ja nur Text...

    Nunja, dann scheint sich dein Code einfach je nach Text(-Länge) anders zu verhalten. Wenn's nicht gewünscht ist, hast du wohl einen Käfer programmiert 🙂



  • Ne, denn nun funktioniert es ja, immer, mit genau dem Text, der vorhin meist nie angezeigt wurde...
    Clean/Rebuild werde ich jedenfalls öfters durchführen.


Anmelden zum Antworten