Einzelnen Beitrag anzeigen

jbg

Registriert seit: 12. Jun 2002
3.483 Beiträge
 
Delphi 10.1 Berlin Professional
 
#18
  Alt 13. Jun 2003, 17:34
Zitat von Christian Seehase:
Es gab nicht nur den von Dir beschriebenen Alignment Error der die Performance drückt, sondern die Funktion stieg mit einer Exception aus.
Das glaube ich dir nicht. Der Code macht sicherlich nicht folgendes:
Delphi-Quellcode:
procedure MyFunc(P: PMyRec);
begin
  P := PMyRec(Integer(P) and $fffffff8); // auf 8 Bytes trimmen
  P^.xyz := 10;
end;

void MyFunc(MYRECT *p)
{
  p = p & 0xfffffff8; // auf 8 Bytes trimmen
  p->xyz = 10;
}
Denn genau das wäre nötig um eine 8 Byte Ausrichtung zu erzwingen. Und ein Programmierer der eine solche Funktion als Schnittstelle in eine DLL packt, gehört erschossen.
  Mit Zitat antworten Zitat