Hi!
Ein seltsames Problem, das ich da habe. Wollte eines meiner Programme etwas umbauen und habe nun PChars mit dabei. Da andere Programmteile Strings verwenden, muss ich die PChars in Strings umwandeln - soweit kein Problem. StrPas schreibt mir die Delphihilfe ist veraltet - ich solle doch eine Direktzuweisung verwenden. Ich habe folgende Möglichkeiten ausprobiert (auskommentiert):
Delphi-Quellcode:
HR_REQUIRES_STATUS_CHANGE: begin
if AnOutput.DataFormat = DF_STATUS_INFORMATION then
// FState := AnOutput.AdditionalData;
// FState := String(AnOutput.AdditionalData);
// FState := Copy(AnOutput.AdditionalData, 1, Length(AnOutput.AdditionalData));
FState := StrPas(AnOutput.AdditionalData);
end;
Das Problem ist folgendes: AdditionalData ist ein PChar, z.B. mit dem Inhalt "F:\Bilder"; vor der Zuweisung ist das auch noch ok; nach der Zuweisung allerdings ist der Inhalt "F:\Bilde"#0 (laut Debugger) - und so wird es dann auch ausgegeben. Interessanterweise passiert das nur, sobald irgendwann einmal "F:\" in AdditionalData steht bzw. gestanden ist (d.h. sobald ich <= 3 Zeichen bin). Davor ist alles normal - danach fehlt immer genau das letzte Zeichen... weiß jemand, wie ich das beheben kann?
Dust Signs
PS.
Crossposting DF