Record alignment, Delphi 4 vs Delphi 5
Posted on 2000-02-14
I wrote to a file in Delphi 4 using the following record structure:
TRouteFileHeader = record // 40 in Delphi 5, 32 in Delphi 4
HRouteId: string; // 9
HRouteVersion: string; // 6
HOperationCount: Integer; // 4
HLoadDate: TDateTime; // 8
HFileVersion: string; // 3
I recompiled in Delphi 5 and tried to read the same file. The first three fields were okay, but the last two were not. When I did a sizeof on the record, it was 40 bytes. In Delphi 4 it was only 32 bytes (which seems about right).
I think this may have something to do with aligning records on 32 bit boundries. I tried to change that setting, and it did make a difference. I couldn't get the Delphi 5 program to correctly read the file though.
My question is, is there a setting in Delphi 5 that will allow it to correctly read this file as written in Delphi 4?