Forum: Win32/Win64 API (native code)
by Uwe Raabe,
4. Jul 2017
Kannst du ignorieren, denn wenn du AnsiStrings und StrUtils einbindest, kommt der Fehler "Doppeldeutiger überladener Aufruf von 'SearchBuf'".
Nein, ist von der Deklaration her kein Unterschied. Allerdings kann man ein TArray<Byte> nicht immer dort einsetzen, wo ein TBytes erwartet wird. Deswegen nimmt man besser gleich TBytes.
Klar geht das: I := newPos - @ByteArray; (es lebe die...
Forum: Win32/Win64 API (native code)
by Uwe Raabe,
4. Jul 2017
Das könnte man eventuell noch etwas optimieren:
uses
System.IOUtils, System.StrUtils;
...
var
aFile, sSubStr: String;
ByteArray: TBytes;
newPos: PAnsiChar;
Forum: Win32/Win64 API (native code)
by Uwe Raabe,
4. Jul 2017
Das liegt dann wohl daran, daß das eben keine reinen Textdateien sind und das erste 0-Byte den String terminiert. In dem Fall würde ich dann TFile.ReadAllBytes empfehlen.