2008/9/16 Adriaan van Os <[EMAIL PROTECTED]>: > Roland Turcan wrote: >> >> Hello FPC-Pascal users discussions! >> >> What is the best way to keep the binary compatibility among different >> CPU architectures. >> >> I need to make our own database engine compatible and other binary >> files, that user still can use our data from i386 or PowerPC computer. >> >> I really don't like the idea to change the order of all numeric >> variables on PowerPC, because it costs time of CPU. >> >> There must be easier way how to keep the compatibility. >> >> Could you give me some hints for better solution. > > Whether you "like the idea" or not, the best way is as follows: > > - add a byte to the header of source data that indicates the endianness, > high-endian for PowerPC, low-endian for i386 > - perform byte swapping if the endianness of source data is different from > the endianness of the current CPU > > With "source data" I mean > - reading files > - reading data over a network > > This is best built-into a streaming toolbox, so that it happens > automatically. > > Adriaan van Os
Don't forget to use packed records (see the Free Pascal Language Reference Guide). I've used binary files in that way across linux and windows machines (x86). Gustavo _______________________________________________ fpc-pascal maillist - fpc-pascal@lists.freepascal.org http://lists.freepascal.org/mailman/listinfo/fpc-pascal