Though 64-bit support was released back in 2011 with Delphi XE2, sometimes I forget which data type are native size and which keep their size no matter the compiler bitness (wiktionary/wikipedia).
This post was motivated by via [WayBack] Having started with Delphi before the Cardinal type was available (Or has it always? I can’t remember.) I routinely declare 32 bit unsigned variables as… – Thomas Mueller (dummzeuch) – Google+
The most simple distinction is between Win32 and Win64, but there are more non-32 bit platforms, so these do not suffice any more:
- [WayBack] 64-bit Windows Data Types Compared to 32-bit Windows Data Types – RAD Studio 10.2 Tokyo
- [WayBack] 64-bit Windows Data Types Compared to 32-bit Windows Data Types – RAD Studio XE3 (yes, that did not get documented in XE2)
The easiest for me are the below tables that only got introduced with Delphi 10.2 Tokyo: [WayBack] Delphi Data Types for API Integration – RAD Studio.
I have bolded the ones that change size.





