Forum: Object-Pascal / Delphi-Language
Delphi
by jbg,
15. Dez 2003
Warum Umwandeln? Ein WideString ist nichts anderes als ein PWideChar unter Windows, nur dass der Delphi Compiler hier ein wenig Arbeit abnimmt. Schau dir noch einmal die WStrToPWChar Funktion an. Dort wird der WideString einfach in einen Zeiger umgewandelt und zurückgeliefert (wenn er nicht leer ist).
Forum: Object-Pascal / Delphi-Language
Delphi
by jbg,
15. Dez 2003
Du musst auch das Array in array of WideString ändern.
Forum: Object-Pascal / Delphi-Language
Delphi
by jbg,
15. Dez 2003
Du könntest anstatt PWideChar einfach WideString schreiben. Dann kann der Compiler seine Compiler-Magic richtig ausspielen. Das geht da WideString nichts anderes als ein PWideChar ist.
Der Compiler ruft bei PWideChar(MyWideString) folgende Funktion auf:
function _WStrToPWChar(const S: WideString): PWideChar;
const
EmptyString = '';
begin
if Pointer(S) = nil then
Result :=...
Forum: Object-Pascal / Delphi-Language
Delphi
by jbg,
6. Dez 2003
So ein Unsinn. Die Schleife mag zwar intern rückwärts laufen, dafür wird aber der benutzte temporäre Zeiger erhöht, was auf das gleiche hinausläuft. Allein der Debugger kommt damit nicht klar und zeigt eben den Inhalt der Zählvariable an, die halt rückwärts läuft, obwohl die Schleife im gesamten betrachtet vorwährts läuft.
Das ist sehr gefährlich. Ein WideString ist intern nichts anderes...