Thema: Delphi Inline Asm Problem

Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu
Online

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.163 Beiträge
 
Delphi 12 Athens
 
#4

Re: Inline Asm Problem

  Alt 8. Mär 2010, 08:27
@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.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat