Unter
Win32 sind Cardinal und Pointer gleich breit, unter Win64 nicht.
Hier solltest du eine Lösung finden.
EDIT:
Hier steht es noch besser.
Noch vor dem Edit war deine Antwort schon genug Schubs
In dem Fall einfach "Cardinal" durch "NativeInt" ausgetauscht und schon wuppt das.
Schrecklichen Dank!