v-t-l писал(а):Кстати, достаточно убрать из объявления packed record слово packed, и всё работает правильно и в 32 и в 64.
Это шаманство зависит от настроек компилятора. Нужно явно указать размер выравнивания записей ( http://www.freepascal.org/docs-html/prog/progsu1.html )
А лучше в межпрограммных структурах использовать базовые типы фиксированных размеров вместо привычных Cardinal, Integer, Char, Bool, Real, которые имеют разный размер на разных платформах. ( http://freepascal.org/docs-html/ref/ref ... 27-27002r1 http://www.freepascal.org/docs-html/rtl ... dex-3.html ).