Forum: Win32/Win64 API (native code)
Delphi
by Fridolin Walther,
11. Jul 2009
Dann übergeb den Default String der ausgegeben werden soll doch einfach als optionalen Parameter. Alles andere wäre aufwändiger, fehleranfälliger und meiner Meinung nach kein sonderlich tolles Code Design. Über den optionalen dritten Parameter kannst Du beim Aufruf also einfach 'Offline' mit übergeben und statt nem leeren String wird 'Offline' zurückgegeben.
function...
Forum: Win32/Win64 API (native code)
Delphi
by Fridolin Walther,
11. Jul 2009
Simpler wäre es wahrscheinlich die ReadWideStringFromProcessMemory Funktion anzupassen, so daß "Offline" zurückgegeben wird statt einem leeren String.
function ReadWideStringFromProcessMemory(PID : Cardinal; AddressOfString : Cardinal) : WideString;
var
ProcessHandle : THandle;
WideCharRead : WideChar;
BytesRead : Cardinal;
begin
Result := '';
ProcessHandle :=...
Forum: Win32/Win64 API (native code)
Delphi
by Fridolin Walther,
11. Jul 2009
Ich weiß ja nicht was Du machst, aber wenn Du es so implementiert hättest, wie von mir geschrieben würd es funktionieren:function ReadWideStringFromProcessMemory(PID : Cardinal; AddressOfString : Cardinal) : WideString;
var
ProcessHandle : THandle;
WideCharRead : WideChar;
BytesRead : Cardinal;
begin
Result := '';
ProcessHandle := OpenProcess(PROCESS_VM_READ, FALSE, PID);
if...
Forum: Win32/Win64 API (native code)
Delphi
by Fridolin Walther,
11. Jul 2009
Wie vorzugehen ist, ist oben beschrieben. Magst Du etwa vollständigen Source haben?
Forum: Win32/Win64 API (native code)
Delphi
by Fridolin Walther,
7. Jul 2009
Die Frage ist, was für ein String ist das. Pascal String? 0-terminiert? Ein Char Array fixer Länge? Je nachdem gäbe es unterschiedliche Möglichkeiten. Wenn der String keine fixe Länge hat (= Char Array) ist das Hauptproblem die Länge des Strings zu ermitteln. Bei Pascal Strings ist das noch relativ simpel zu ermitteln, da der erste Wert die Länge angibt. Bei Null-Terminierung dagegen muss...