Hallo Leute,
danke für eura Antworten, leider bin ich immer noch nicht schlauer...
Zitat von
Sakura:
Wie wärs mit: weil Delphi erkennt, dass ein PChar erwartet wird und ein #0 hinten anhängt?
Ich habe gelesen, dass @String[1] gerade ohne Compiler Magic funktionieren soll...
Zitat von
Christian Seehase:
wenn ein Parameter vom Typ string übergeben wird, dann wird intern ein Aufruf der Prozedure UniqueString ausgeführt, der, wenn ich das eben im CPU Fenster richtig gesehen habe, immer eine #00 ans Ende anfügt.
Aber @String[1] ist doch kein String, sondern ein ^Char und damit dürfte auch kein UniqueString() ausgeführt werden
.
Zitat von
jbg:
Ein AnsiString fürht 2 Längeninformationen mit sich. Zum einen in den 8 Bytes vor der Adresse, auf die die Variable zeigt, und zum anderen ist jeder String sowieso Nullterminiert.
Wieso nullterminiert? Wäre er das, dann könnte ich doch ohne Konvertierung einen String an eine
API-Funktion übergeben, da er auf das erste Zeichen des Strings zeigt und somit auch ein PChar wäre.
Irgendwie hab ich das Gefühl auf der Leitung zu stehen...
MfG,
d3g