Forum: Sonstige Fragen zu Delphi
Delphi
by sakura,
23. Aug 2003
Ah, ich sehe Deine Verwirrung und will mich um mehr Licht kümmern ;-)
Es wird ja nicht ein Char, sondern ein PChar erwartet. Ein Char ist, wie Du weisst ein einzelnes Zeichen. PChar ist ein Pointer auf das erste Zeichen in einem Array "vieler" Zeichen, wo das letzte Zeichen ein Nullwert (#0) ist. In Delphi enden alle Strings automatisch auf #0, um solche Casts auch leichter zu gestallten.
...
Forum: Sonstige Fragen zu Delphi
Delphi
by sakura,
23. Aug 2003
Silent, da gibt es nicht viel zu verstehen. Delphi nimmt Dir oft viel Arbeit ab, in dem es verschiedene Dinge automatisch erledigt. Das macht Dir das Leben leichter. Wenn Du einen konstanten String eingibst, an einer Stelle wo die Deklaration einen PChar Wert erwartet, dann über gibt Delphi automatisch den korrekten Pointer um einen PChar daraus zu machen.
...:cat:...
Forum: Sonstige Fragen zu Delphi
Delphi
by sakura,
23. Aug 2003
Delphi kennt den Unterschied und ist an dieser Stelle ein wenig flexibel, damit Du nicht einen extra Type-Cast machen musst. Verwirrend, aber praktisch ;-)
...:cat:...
Forum: Sonstige Fragen zu Delphi
Delphi
by sakura,
23. Aug 2003
Wieso? Das ist recht einfach. Die Deklaration stammt von MS und die arbeiten gerne mit Pointern.
AnsiString bzw. String sind in Delphi Pointer auf eine Pascal-/Delphi-spezifische Struktur, welche anders ist als die MS-PChar (PAnsiChar) Pointer.
PChar(String) -> Pointer auf das erste Byte des Strings, inklusive einer aufwendigen Kopieraktion.
Wenn der string garantiert nicht geändert...