AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Probleme mit RtlRunEncodeUnicodeString

Ein Thema von slemke76 · begonnen am 22. Sep 2015 · letzter Beitrag vom 27. Sep 2015
 
Benutzerbild von Zacherl
Zacherl

Registriert seit: 3. Sep 2004
4.629 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#15

AW: Probleme mit RtlRunEncodeUnicodeString

  Alt 24. Sep 2015, 15:36
Doch, das macht Delphi schon immer (?) so, wie uligerhardt sagte. Nur auf diese Weise können Delphi-Strings, egal ob Ansi oder Unicode, schnell und einfach für die Verwendung mit der Windows-API auf PChar gecastet werden.
Ja, konnte das grade bei mir auch beobachten. Da wurde wohl tatsächlich einmal mitgedacht.

Delphi-Strings haben auch schon seit Delphi 2 kein vorangestelltes Längenbyte mehr, sondern einen 32 Bit Integer. Der String mit Längenbyte ist der alte ShortString.
Aktuell steht vor Ansi/UnicodeStrings eine ganze Menge mehr, insgesamt 12 Bytes.
Ich weiß ich weiß Ist hier nur nicht wirklich von Relevanz. Ging mir eher um die zwei verschiedenen Techniken Längenprefix vs. Nullterminierung.

WIMRE macht es einen Unterschied, wenn Source = '' ist. Vielleicht erkennt der Compiler, dass das in dem Beispiel nicht der Fall ist und lässt deshalb die Prüfung weg. Vermutlich taucht ein Unterschied auf, wenn man das ganze z.B. in eine Prozedur mit Source als Argument steckt.
Konnte auch mit leerem Source und Source als Funktionsargument keinen Unterschied im Assembly ausmachen, aber kann natürlich sein, dass es irgendwelche Edge-cases gibt.

Glaube aber wir bewegen uns grade etwas vom Thema weg.
Projekte:
- GitHub (Profil, zyantific)
- zYan Disassembler Engine ( Zydis Online, Zydis GitHub)

Geändert von Zacherl (24. Sep 2015 um 15:41 Uhr)
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:21 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz