Sorry, dass ich das Thema schon wieder hoch hole, aber ich hab das Problem (hoffentlich dauerhaft) lösen können
. Ich hab den "Fehler" gemacht, ein Projekt aus Delphi 5 einfach im XE2 zu öffnen, und diesem Projekt dann die 64 Bit Plattform hinzuzufügen. In einem neu im XE2 erstellten Projekt funktionierte es nämlich auch einwandfrei mit 64 Bit.
Nach ein "bisschen" Vergleichsarbeit zwischen dem importierten Projekt und dem frisch erstellten, stellte sich heraus, dass die Ausrichtung der Records im importierten falsch war. Dort war Byte eingestellt, im frisch erstellten aber Quad Word. Nur für den Fall, dass sich andere Leute ebenfalls "totsuchen", die Option ist zu finden in den Projekteinstellungen unter Delphi-Compiler > Compilieren > Record-Felder ausrichten: Quad Word. Dabei darauf achten, dass als Ziel oben "Alle Konfigurationen - Alle Plattformen" gewählt ist.
Dennoch eine Frage: Wirkt die Ausrichtung von Records an Bytes genauso wie wenn diese als packed deklariert wären
Das würde nämlich mit der einen Antwort bei StackOverflow übereinstimmen, denn ich hab im Debugger ebenfalls immer eine Größe von 40 für
SizeOf(Attributes)
bekommen, mit einer Ausrichtung an Quad Words aber 48.
MfG Dalai