Zitat:
test2(pansichar(s)); // Ergibt einen Fehler das s eine falsche Länge hat
Zum Fehler bei
test2
führt, dass du deine Rückgabe mit
StrPas
einem normalen String zuweist. In deiner Delphi-Version sind Strings aber
Unicode und nicht
ASCII.
Ergibt auch eine Compiler-Warnung, welche du scheinbar nicht beachtest.
Und grundsätlich kann man erstmal CHAR im C eher mit einem BYTE in Delphi gleichsetzen.
Gut, eigentlich ist CHAR ein ShortInt und UCHAR ein Byte (U von Unsignet und nicht von
Unicode)
Der Typ Char in Delphi ist ein compilerabhängiger Alias, welcher für AnsiChar oder WideChar steht.