Partager via


Problèmes courants de migration vers Visual C++ 64 bits

Quand vous utilisez Visual C++ pour créer des applications destinées à s'exécuter sur un système d'exploitation Windows 64 bits, tenez compte des points suivants :

  • int et long sont des valeurs 32 bits sur les systèmes d'exploitation Windows 64 bits.Pour les programmes que vous prévoyez de compiler pour des plateformes 64 bits, veillez à ne pas assigner de pointeurs à des variables 32 bits.Les pointeurs sont des valeurs 64 bits sur les plateformes 64 bits et vous tronquerez la valeur d'un pointeur si vous l'assignez à une variable 32 bits.

  • size_t, time_t et ptrdiff_t sont des valeurs 64 bits sur les systèmes d'exploitation Windows 64 bits.

  • time_t est une valeur 32 bits sur les systèmes d'exploitation Windows 32 bits dans les versions de Visual C++ antérieures à Visual C++ 2005.time_t est maintenant un entier 64 bits par défaut.Pour plus d'informations, consultez Gestion du temps.

    Vous devez savoir dans quels cas votre code prend une valeur int et la traite comme une valeur size_t ou time_t.En effet, le nombre peut augmenter au point de dépasser la taille d'un nombre 32 bits. Dans ce cas, les données sont tronquées quand elles sont renvoyées vers le stockage int.

Le modificateur %x (format int hexadécimal) printf ne fonctionne pas comme prévu sur un système d'exploitation Windows 64 bits.Il ne fonctionne que sur les 32 premiers bits de la valeur qui lui est passée.

  • Utilisez %I32x pour afficher un type intégral 32 bits au format hexadécimal.

  • Utilisez %I64x pour afficher un type intégral 64 bits au format hexadécimal.

  • Le %p (format hexadécimal pour un pointeur) fonctionnera comme prévu sur un système d'exploitation Windows 64 bits.

Pour plus d'informations, voir :

Voir aussi

Autres ressources

Configuration des programmes pour 64 bits (Visual C++)

Portage et mise à niveau de programmes