First, look at the places where you interact with non-delphi libraries and api calls, they may differ. In Win32, libraries with a standard call to stdcall are called _SomeFunction @ 4 (@ 4, indicating the size of the parameters, etc.). On Win64, there is only one calling convention, and the functions in the dll are no longer formalized. If you import functions from DLL files, you may need to configure them.
Keep in mind that in a 64-bit version of EXE you cannot load a 32-bit DLL, so if you depend on third-party DLL files, you must also check the 64-bit version of these files.
Also, look at Integers, if you depend on their maximum value, for example, when you allow them to overflow and wait for the moment when this happens, this will cause a problem if the size of the integer is changed.
In addition, when working with streams and you want to serialize different data, including an integer, this will cause a problem, since the size of the integer has changed, and your stream will not be synchronized.
So, in places where you depend on the size of the integer or pointer, you will need to make adjustments. When serializing sush data, you also need to keep this size issue in mind, as this can lead to data incompatibility between 32 and 64 bit versions.
In addition, the FreePascal compiler with the Lazarus IDE already supports the 64-bit version. This alternate Object Pascal compiler is not 100% compatible with the Borland / Codegear / Embarcadero Pascal dialect, so just recompiling it for 64-bit may not be so easy, but it can help point out problems with 64-bit.
Andrรฉ van Schoubroeck Oct. 14 '09 at 20:25 2009-10-14 20:25
source share