The simplest strategy is to build what you have with 64-bit settings and test it. Some code does not need to be changed at all. Other code, usually with the wrong assumptions about the size of ints / pointers, will be much more fragile and needs to be modified to be architecture independent.
Very often binaries containing binary entries cause most problems. This is especially true in environments where ints grows from 32-bit to 64-bit when switching to a 64-bit build. This is primarily due to the fact that integers are initially written to files in their current (32-bit) length and are read using the wrong length in a 64-bit assembly, where ints are 64-bit.
Michael Goldshteyn
source share