Hi, ich würd gern nen String ausm Speicher lesen. Die Länge soll dabei selbstständig berechnet werden.. Sprich es soll so lange gelesen werden bis das Byte 0x00 kommt. Dazu hab ich mir folgende Schleife geschrieben:
Code:
// ReadString
string ReadString(UINT_PTR Offset)
{
int size;
BYTE strbyte = {0x20}; // Hack.. musste strbyte ja mit irgendwas initiieren was nicht null ist.
for (size=0;strbyte!=0;size++) // so lange lesen bis das byte 0x00 und damit das Ende des Strings gefunden wurde.
ReadProcessMemory(hProcess, (LPCVOID)(Offset+size), &strbyte, 1, NULL);
char Value[256] = "\0"; // das hier würde ich gerne durch char Value[size] = "\0" ersetzen.. jedoch sagt er mir die länge muss eine Konstante sein?!..
if (ReadProcessMemory(hProcess, (LPCVOID)Offset, &Value, size-1, NULL))
return (string)Value;
else
return NULL;
}
Kann mir jemand eine bessere Methode zeigen?