@str: db 'Hello World', $0
- ergibt einen AnsiText also PAnsiChar
- String ist aber seit D2009 ein UnicodeString
- ein String hat eine bestimmte intere Struktur, welche viel mehr besitzt, als nur den Teil, welche rpraktischer Weise fast wie ein PChar aussieht.
Und diese Struktur hast du nicht mit erstellt, sondern du trägst einfach nur den PChar-Zeiger in den "String" ein
- selbst wenn du die Stringstruktur ordnungsgemäß erstellt hättest und der Text auch noch als
Unicode vorhanden wäre, gäbe es immernoch ein Speicherleck, da ein eventuell vorher in m_strAsm liegender String nicht freigegeben würde.
- in EAX ist an soeiner Stelle nicht immer der Self-Pointer, vorallem nicht, da hierbei davor noch die Klasseninitialisierung durchgeführt wird, so daß TAsm[eax] vermutlich nicht auf Self zeigt.
[add]
- jupp, das von Neutral General genannte kommt dann auch noch mit dazu
Fazit: solange du keine Ahnung hast, was du da überhaupt machst und wie gewisse Datentypen intern arbeiten ... laß die Finger von sowas,
dazumal es hierbei garkeinen Grund gibt, sowas via
ASM lösen zu wollen.