Einzelnen Beitrag anzeigen

Benutzerbild von igel457
igel457

Registriert seit: 31. Aug 2005
1.622 Beiträge
 
FreePascal / Lazarus
 
#1

Problem mit Record Feld align unter Delphi 2009

  Alt 14. Sep 2008, 11:35
Hallo,
ich habe mit die Trial von Delphi 2009 heruntergeladen und versuche gerade meine Grafikbibliothek damit zum laufen zu kriegen. Das funktioniert soweit auch schon ganz gut. Ein Problem habe ich jedoch noch mit der Acinerella-Videoschnittstelle.

Ich habe folgende Typedeklaration:
Delphi-Quellcode:
{$MINENUMSIZE 1}
{$ALIGN 8}
// Addr Offs. TurboDelphi 2006 | Delphi 2009
TAc_stream_info = record // 0 | 0
  stream_type: TAc_stream_type; // 0 | 0
  case additional_info: byte of // 4 | 8
    0: (video_info: TAc_video_stream_info); // 8 | 16
    1: (audio_info: TAc_audio_stream_info); // 8 | 16
end;
Wie man sieht sind die Speicheradressen bei Delphi 2009 verschoben: Die Dummy-Variable "additional_info" wird bei TurboDelphi einfach zu Offset "4" verschoben, bei Delphi 2009 wird sie als eigenes Feld behandelt und bekommt Adresse "8". Die darauffolgenden Felder werden entsprechend weiter verschoben.

Hat jemand eine Idee wie ich dieses Problem beheben könnte? Ist das so gewollt? Oder ist es ein Bug im neuen Delphi?

Danke für eure Antworten,
Andreas
Andreas
"Sollen sich auch alle schämen, die gedankenlos sich der Wunder der Wissenschaft und Technik bedienen, und nicht mehr davon geistig erfasst haben als die Kuh von der Botanik der Pflanzen, die sie mit Wohlbehagen frisst." - Albert Einstein
  Mit Zitat antworten Zitat