Проблема заключается в packed recordобъявлении, тип упакованной записи становится типом записи в X64, поэтому вы должны удалить «упакованную» из «упакованной записи» в объявлении и вместо этого использовать ALIGNдирективу.
{$ALIGN 8}
TBigCardinalVarData = record
VType: TVarType;
Reserved1, Reserved2, Reserved3: Word;
BigCardinalPtr: PBigCardinal;
Reserved4: LongWord;
end;
для получения дополнительной информации прочитайте эти записи
Delphi Compiler Changes for XE2- Преобразование 32-битных приложений Delphi в 64-битную Windows