Pour obtenir une clé
d'essai remplissez le formulaire ci-dessous
Demandez des tariffs
Nouvelle licence
Renouvellement de licence
--Sélectionnez la devise--
USD
EUR
RUB
* En cliquant sur ce bouton, vous acceptez notre politique de confidentialité

Free PVS-Studio license for Microsoft MVP specialists
To get the licence for your open-source project, please fill out this form
** En cliquant sur ce bouton, vous acceptez notre politique de confidentialité.

I am interested to try it on the platforms:
** En cliquant sur ce bouton, vous acceptez notre politique de confidentialité.

Votre message a été envoyé.

Nous vous répondrons à


Si vous n'avez toujours pas reçu de réponse, vérifiez votre dossier
Spam/Junk et cliquez sur le bouton "Not Spam".
De cette façon, vous ne manquerez la réponse de notre équipe.

>
>
Why is it so hard to create a 64-bit ve…

Why is it so hard to create a 64-bit version of an application?

10 Fév 2011
Author:

Unfortunately, despite the seeming simplicity, it is often not enough just to rebuild a 32-bit program for a 64-bit platform and fix compiler errors to provide assured operability of the application being ported. The main issue of migrating to 64 bits is the presence of hidden 64-bit errors, i.e. cases when a code fragment that worked correctly in the 32-bit version causes errors in the 64-bit version.

Most often 64-bit errors occur in the following code fragments:

  • code based on incorrect assumptions about types' sizes (for instance, on the assumption that the pointer's size is always 4 bytes);
  • code processing large arrays whose sizes exceed 2 Gbytes in 64-bit systems;
  • code writing and reading data;
  • code containing bit operations;
  • code with complex address arithmetic;
  • obsolete code;

You may read a detailed description of each error type in the article A Collection of Examples of 64-bit Errors in Real Programs. Although all the errors in code that reveal themselves while compiling the program for 64-bit systems are related to inaccurate compliance with C/C++ standards, no real project is secure from them.

Another issue of moving to a 64-bit platform is dependence of your application on the libraries that do not have 64-bit versions since combined use of a 64-bit program and a 32-bit library is impossible in Windows systems.

A detailed description of the migration process and estimate of time and cost of porting an application to a 64-bit platform are given in this article.

References

Popular related articles
macOS 10.15 no longer supports 32-bit apps. What can you do?

Date: 15 Oct 2019

Author: Sergey Khrenov

On October 7, 2019, Apple released a new version of its Mac operating system, macOS Catalina. Version 10.15 contains many changes and improvements. One of the significant is the complete phasing out …
If the coding bug is banal, it doesn't mean it's not crucial

Date: 19 Avr 2017

Author: Andrey Karpov

Spreading the word about PVS-Studio static analyzer, we usually write articles for programmers. However, some things are seen by programmers quite one-sided. That is why there are project managers wh…
Detecting Overflows of 32-Bit Variables in Long Loops in 64-Bit Programs

Date: 22 Mar 2016

Author: Andrey Karpov

One of the problems that 64-bit software developers have to face is overflows of 32-bit variables in very long loops. PVS-Studio code analyzer is very good at catching issues of this type (see the Vi…
Is it possible to run 64-bit applications in a 32-bit OS?

Date: 08 Déc 2015

Author: Andrey Karpov

Nowadays 64-bit operating systems are very widespread. But 32-bit OS are still present on the market, in quite obvious quantities. A lot of modern program tools are developed to be run only in 64-bit…
How to Port a 9 Million Code Line Project to 64 bits?

Date: 03 Aoû 2015

Author: Evgeniy Ryzhkov, Ilya Ivanov

Our team has recently finished porting one pretty large project (9 million code lines, 300 Mbytes of source files) to the 64-bit platform. It took us one year and a half. Although we are not permitte…

Comments (0)

Next comments
Unicorn with delicious cookie
Nous utilisons des cookies pour améliorer votre expérience de navigation. En savoir plus
Accepter