In this article, we'll explain when you should and should not change your application to 64-bit (aka x64) and how
64-bit and 32-bit (also known as x64 and x86 respectively) represent the length in bits of a pointer in memory. When you use 32-bit the process is limited to use 2gb of ram (sometimes 4gb in special cases). When you use 64 bit you can use a lot more.
Over the years Windows have switched to 64 bit - to allow the computers to use more than 4gb of ram - these 64-bit operations systems can run an application that was compiled to 64 bit and also an application that was compiled to 32 bit.
*You can't have within the same process dlls that use 64-bit and dlls that use 32-bit
Yes - the migrated code and all code provided by firefly fully support 64 bit BUT when you use 64 bit, you need to make sure that any code that is external to the migration is also compiled in 64 bit. This includes any external dll that the application uses, including:
UDFetc... (get.dll, hotfudge.dll etc...)
If you don't use any of these, you can safely move to 64 bit after doing significant testing to the application.
You only need to compile as 64 bit, if your application process is planning to use more than 2gb of RAM. Most desktop applications should not use more than 2gb of ram for many other reasons - so these applications do not need to be 64-bit.
64-bit versions of windows can safely and natively run 32-bit applications.
Many commonly used applications still use 32-bit, for example, Visual Studio 2019 is a 32-bit application (and even most installed versions of office are 32 bit)
Since magic is 32 bit, and since most applications use some external dlls, we decided that the migration will produce a 32-bit application - you can easily change that once you take control over the code.
By default, the migrated code is configured to compile as "Any CPU" which means that any of the migrated dlls can be used in a 64-bit scenario. To change the application to run as 64 bit, you'll need to :
Note that we do not recommend switching to 64-bit unless you need more than 2gb of ram for your process, because most applications use external dlls that will complicate the move to 64-bit