Float Problem?!
-
-Hallo-
Habe ein Prob.
Und zwar habe ich einen Prozess geöffnet und will dort von der Adresse "m" (in int)
einen float wert mit 4 bytes auslesen (und später auch ändern, aber erstmal uninteressant)!Ich habe auch schon alles probiert nur mir wird immer null angezeigt, oder ein komischer wert!
Könnt ihr helfen???
MfG [D]-[N]
Hier noch der Code:
float fh; ReadProcessMemory (BwProcessInfo.hProcess, (LPVOID)m, &fh, 1, 0); Label8->Caption = fh;
-
Hallo
der Code den du gepostest hast ist grundsätzlich richtig, der Fehler muß daran liegen das m auf die falsche Adresse zeigt oder an der richtigen Adresse ein falscher Wert liegt. benutzt den Debugger und eigene Logfunktionen, um auch den Fremdprozeß durchzugehen.
Desweiteren überprüfe den Rückgabewert von ReadProcessMemory, ob die Funktion überhaupt erfolgreich war, und wenn nicht las dir mit dem üblichen GetLastError und FormatMessage den Fehler ausgeben.Desweiteren gehört das eher ins WinAPI-Forum.
bis bald
akari
-
Wie groß ist denn ein float (in Byte)? Vorausgesetzt, der Wert in m stimmt...
-
Hallo
float ist doch immer in Byte genauso groß wie int (sprich im 32bit-Windows 4), oder?
bis bald
akari
-
ReadProcessMemory (BwProcessInfo.hProcess, (LPVOID)m, &fh, 1, 0);
Na ja, aber die 1 ist doch die Anzahl der Byte die gelesen werden soll, oder etwa nicht? Da müsste dann doch ein sizeof(float) hin.
-
Hallo
achso darauf beziehst du dich. Ja da ist schon mal ein Fehler.
bis bald
akari
-
Danke Leute für die schnelle antwort!!
Mein Fehler war:ich habe nur 1 byte statt 4 abgefragt...