ReadProcessMemory Text/String auslesen

04/25/2011 12:15 BrendonHomo#16
Vielen Dank, jetzt klappt alles so wie es soll.

Allerdings hätte ich noch eine letzte Frage die nichtmehr ganz zum Thread passt aber ich deswegen auch keinen neuen eröffnen will, undzwar will ich jetzt das sich der Text nicht ganze zeit einträgt sondern nur wenn er sich geändert hat, dann hab ich folgendes gemacht:

Quote:
if (buffme != buffer) {
Form36->RichEdit2->Lines->Add(buffer);
buffme = buffer;
}
Allerdings klappt das nicht, was es aber sonst bei z.b 4 Byte werten super funktioniert.
04/25/2011 12:49 MrSm!th#17
Schon klar, soweit ich weiß ist dein buffer ein char*/wchar_t* und nicht zb. eine String Klasse wie std::string.
C-Style Strings sind nunmal Pointer auf ein Array von chars/wchar_ts und du vergleichst mit == auch nur die Pointer (die mit hoher wahrscheinlichkeit nicht gleich sind), nicht aber den Inhalt des Strings.

Zum vergleichen des Inhalts gibts strcmp/wcscmp.
In C++ würde man die Klasse std::string nehmen, die den Operator == überlädt, sodass es dort funktionieren würde, allerdings kannst du die ja nicht einfach als Buffer für ReadProcessMemory angeben; da müsstest du schon erst einfach nur ein char Array als Buffer angeben und dieses dann in den String kopieren, welchen du mit == vergleichen kannst, aber da kann man auch gleich strcmp nehmen, ist zwar nicht ganz so sicher, aber weniger Aufwand.

Vielleicht solltest du dir nochmal ein bisschen was über die Grundlagen durchlesen, denn dazu gehören auch Pointer und Strings ;O