2010-06-09 5 views
1

Je regardais le même code (un exemple de projet MS Visual Studio C++) récemment avec plusieurs configurations de build (Release/Debug, Win32/x64).Programmation pour un environnement 32 bits vs programmation pour un environnement 64 bits/Configurations de construction

Ma question: Quelle est la différence? Je suppose que je comprends Release/Debug (Release = version finalisée du projet, Debug = version utilisée pour le débogueur), mais quelles sont les choses à prendre en compte lors de la construction de différentes versions pour les plates-formes Win32/x64? Y a-t-il des différences de codage, ou cela affecte-t-il simplement la façon dont ce même code est finalement intégré dans le code machine?

Je sais qu'il y a différents fichiers de bibliothèque selon que vous utilisez un système 32 bits ou 64 bits ... Est-ce que toutes ces différences sont encore du code machine? Est-ce qu'un fichier de bibliothèque 32 bits et son fichier de bibliothèque 64 bits correspondant seraient deux fichiers avec exactement les mêmes fonctions construites à partir du même code source à l'origine, et ne différant que par leur implémentation de code machine?

Merci!

--Russel

+0

Les hypothèses erronées ne sont pas transmises. – Thanatos

Répondre

0

Il peut y avoir des différences dans la façon dont le code est écrit, mais avec un peu de soin, la plupart du code est assez facile à écrire pour être compilé et s'exécute comme un exécutable 32 bits ou 64 bits. La plupart des problèmes surviennent quand/si vous faites des choses comme supposer la similarité entre les types Windows (par exemple, qu'un DWORD contiendra un pointeur - vrai dans le code 32 bits mais pas dans le code 64 bits).

Notez également que les dernières itérations du compilateur 32 bits ont un avertissement que vous pouvez activer pour le code qui ne serait pas porté en exécution 64 bits (et cela semble assez efficace et précis).

0

x32 réduit l'encombrement. Les "mots" sont plus petits (32bit contre 64bit). Généralement, les systèmes d'exploitation x64 bit sont fantastiques car ils permettent aux applications d'utiliser plus de quatre gigaoctets de RAM. Cependant, sauf si vous utilisez un logiciel massif comme une base de données, 32x s'exécute généralement plus rapidement et plus efficacement, en particulier sur les systèmes d'exploitation x64 bits.

+0

Souvent, un système 32 bits ne peut même pas utiliser 4 Go de RAM, à cause de choses comme une carte graphique 512 MiB qui se place sur la RAM. Il existe des moyens de contourner ce problème, même sur les systèmes 32 bits, mais Windows, à moins que vous ne payiez pour la très bonne version, ne le supporte pas. – Thanatos

Questions connexes