The two primary areas of concern when examining your code for 64-bit compatibility are as follows:
- Address calculations
- Pointer arithmetic
For many reasons, developers have stored addresses as a ULONG value. After all, on 32-bit Windows, an address, a pointer, and a ULONG value are all 32 bits long. However, on 64-bit Windows, an address and a ULONG are not the same length. While a ULONG remains a 32-bit value, all pointers are now 64-bit values.