Text von Edit Control ermitteln.



  • Ich versuche seit einiger Zeit Text von mehreren Edit Controls einzulesen, dazu benutze ich folgenden Code:

    std::string buffer, buffer1, buffer2;
    GetWindowText(control1.edita1, &buffer[0], MAX_PATH);
    GetWindowText(control1.editb1, &buffer1[0], MAX_PATH);
    GetWindowText(control1.editc1, &buffer2[0], MAX_PATH);
    

    Komischerweise haben alle buffer am Ende, den Wert des zuletzt aufgerufenen GetWindowText Edit Controls.



  • Das Problem hat sich schon gelöst, das Problem bestand in der Speicherung des Zeigers.



  • Helpmeifyoucan schrieb:

    Ich versuche seit einiger Zeit Text von mehreren Edit Controls einzulesen, dazu benutze ich folgenden Code:

    std::string buffer, buffer1, buffer2;
    GetWindowText(control1.edita1, &buffer[0], MAX_PATH);
    GetWindowText(control1.editb1, &buffer1[0], MAX_PATH);
    GetWindowText(control1.editc1, &buffer2[0], MAX_PATH);
    

    Komischerweise haben alle buffer am Ende, den Wert des zuletzt aufgerufenen GetWindowText Edit Controls.

    Das kannst du auf keinen Fall so machen ⚠ . Damit untergräbst du die (automatische) Speicher-
    allokierung der Klasse std::string. Das wird n Pufferüberlauf geben. (IMHO 😉 )


Anmelden zum Antworten