Inpromptu wrote:
I've found the problem... !
if the record is
Myrecord=record
MyInteger:integer;
Mystring:string;
end;
compiled with c:\lazarus\pp\bin\i386-bin\ppc386 without any other parameter,
sizeof(Myrecord.Myinteger) shows 2.
compiled inside Lazarus sizeof(Myrecord.Myinteger) shows 4 !
Because of this, Mystring is readed wrong from the file.
I think this is a trivial problem, but I don't know how to force MyInteger to
be 2 bytes long inside and outside Lazarus... Or 4 bytes long ?
Size of Integer depends on FPC $mode used. See
[http://www.freepascal.org/docs-html/prog/progap4.html]. So you can
force Integer to be of specific size by making sure that FPC always uses
the same $mode, whether you compile console version or GUI version from
Lazarus.
Or you can use "SmallInt" or "LongInt" (depending on what you want -- 2
or 4 bytes ?) to be sure that, regardless of $mode used, your MyInteger
has always the same size. See
[http://www.freepascal.org/docs-html/ref/refsu5.html].
Michalis
_______________________________________________
fpc-pascal maillist - fpc-pascal@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-pascal