Seite 1 von 1

MACX-Hybrid-Binaries: unterschiedliches Speicherverhalten?

Verfasst: 13. September 2007 12:02
von GoaSkin
Mit Hilfe einer fertigen Bibliothek schreibe ich ein Programm, das Content-Dateien für das Spiel Simcity4 erzeugt.

Im Header beginnen diese mit den vier Buchstaben DBPF, wodurch der Dateityp identifiziert wird. So weit so gut, ich schrieb das Programm bislang auf einem Intel-Macbook, wobei die Dateien richtig erzeugt wurden.
Nun habe ich das Programm auf einem PPC-basierten Mac compiliert, wobei ich merkte, daß korrupte Dateien erzeugt werden. Da der Fehler nicht in Quellcode-Neuerungen zu finden ist, betrachtete ich die exportierten Dateien einmal im HEX-Editor, wobei mir auffiel, daß sämtliche Arrays byte-weise rückwärts gespeichert sind.

Aus dem Klartext DBPF wurde FPBD; darauf folgende Versionsnummern und Timestamp-Angaben waren ebenfalls rückwärts identifizierbar. Wie kann sowas sein?
Liegt dieses Problem an Compiler-Einstellungen oder an der CPU-Arbeitsweise, sodaß der Datenexport unterschiedlich je nach dem ausfällt, ob das Programm auf einem PPC oder X86 gestartet ist.

Handelt es sich hierbei um ein populäres Phänomen?

Verfasst: 13. September 2007 12:08
von boandl

Verfasst: 13. September 2007 16:53
von GoaSkin
Kann man eine festgelegte Byte-Reihenfolge erzwingen (z.B. über ein Compiler-Flag oder ein Makro)?

Verfasst: 14. September 2007 11:19
von FlorianBecker
Falls du mit QDataStream von Qt 4 arbeitest kannst du die ByteOrder einstellen, die ist dann auf jedem von Qt unterstützen System so.