Verlangt DoXOr eine AnsiString oder String?
Hört sich so an, als würde DoXOr den String/AnsiString zu PChar/PAnsiChar casten (umwandeln).
Ab Delphi 2009 glaub ich, sind Strings
Unicode d.h. 1 Zeichen = 2 Bytes.
1 AnsiZeichen = 1 Byte. Du kannst String einfach zu AnsiString casten, da Delphi die konvertieren von
Unicode zu
ANSI alleine macht.
Wenn du mit PAnsiChar und PChar arbeitest, musst du darauf achten den Text in den richtigen String zucasten. PChar = String, PAnsiChar = AnsiString.
Falls du einer String-Variable einen AnsiString zuweist, macht Delphi es auch von alleine.
Beim übergeben an eine
API, musst entweder so:
Delphi-Quellcode:
var Text : PChar;
AText : AnsiString;
begin
Text := PChar(String(AText));
end;
oder die APIs mit dem A am Ende nehmen, mit dennen kannst du AnsiString direkt senden.
z.b. SendMessageA;
Das würde es so gehen:
Delphi-Quellcode:
var Text : PAnsiChar;
AText : AnsiString;
begin
Text := PAnsiChar(AText);
end;
EDIT: Succ brauchst du nicht.
Delphi-Quellcode:
result := UpdateResource(hUpdateRes, RT_String, PChar(delimiter), 0, PChar(text), succ(length(text))*sizeof(char));