Schleife für WM_GETTEXT wird nicht ausgeführt
-
Warum wird diese Schleife falsch oder garnicht ausgeführt?
char *buffer[256]; SendMessage(hEdit1, WM_GETTEXT, sizeof(buffer), (LPARAM)buffer); if (buffer[256] == "Hallo") { // Funktion ausführen }
-
1. Weil dies kein Vergleich eines Strings ist.
Dazu musst Du strcmp o.ä. bemühen.
2. Ist char *buffer[256]; kein String sondern einer Array von Zeigern.Lies bitte ein Tutorial und setze Dich grundsätzlich mit der Sprache C/C++ auseinander.
-
3. ... welche Schleife?
-
Deine Nachricht ist extrem fehleranfällig (run-time error durch stack overflow), weil du es dem Programm erlaubst, zu große Datenmenge in deinen Buffer zu kopieren.
sizeof(buffer)ergibt nämlich 1024 (256 * sizeof(*buffer)). Die Anzahl von zu kopierenden Zeichen musst du vorher rausfinden und nur so viel Speicher reservieren:char* cBuffer = new char[Edit_GetTextLength(hEdit1)+1];An deiner Stelle würde ich den Tipp von Martin wirklich annehmen.
Grüße,
Rewind.