Share via


Applications 64 bits

Lorsque vous compilez une application, vous pouvez spécifier si elle doit être exécutée sur un système d'exploitation Windows 64 bits comme une application native ou sous WOW64. WOW64 est un environnement de compatibilité qui permet à une application 32 bits de s'exécuter sur un système 64 bits. WOW64 est inclus dans le système.

Notes

Toutes les applications basées sur les versions 1.0 ou 1.1 du .NET Framework sont traitées comme des applications 32 bits et toujours exécutées sous WOW64 sur le Common Language Runtime (CLR) 32 bits sur un système d'exploitation 64 bits. En outre, les applications 32 bits basées sur .NET Framework version 4 s'exécutent sous WOW64 sur les systèmes 64 bits.

Visual Studio installe la version 32 bits du CLR sur un ordinateur x86, ainsi que la version 32 bits et la version 64 bits appropriée du CLR sur un ordinateur Windows 64 bits. (Dans la mesure où Visual Studio 2010 est une application 32 bits, lorsque celle-ci est installée sur un système 64 bits, elle s'exécute sous WOW64.)

RemarqueRemarque

En raison de la conception de l'émulation x86 et du sous-système WOW64 pour la famille de processeurs Itanium, l'exécution des applications est limitée à un seul processeur.Ces facteurs réduisent les performances et l'évolutivité des applications .NET Framework 32 bits qui s'exécutent sur les systèmes Itanium.Il est préférable que les applications qui utilisent .NET Framework 1.1 servent à des applications clientes interactives et non à des applications qui requièrent un haut niveau de performances ou d'évolutivité, par exemple les applications ASP.NET à forte charge.Dans la mesure du possible, utilisez .NET Framework version 4, qui inclut la prise en charge 64 bits native des systèmes Itanium, pour de meilleures performances et une évolutivité accrue.

Lorsque vous exécutez une application managée 64 bits sur un système d'exploitation Windows 64 bits, vous pouvez créer un objet dont la taille maximale est de 2 gigaoctets (Go).

De nombreux assemblys s'exécutent de la même manière sur le CLR 32 bits et le CLR 64 bits. Toutefois, certains programmes peuvent se comporter différemment, selon le CLR, pour une ou plusieurs des raisons suivantes :

  • Des structs contenant des membres qui changent de taille selon la plateforme (par exemple tous les types pointeur).

  • Des opérations arithmétiques sur les pointeurs qui incluent des tailles de constantes.

  • Des appels de plateforme ou des déclarations COM incorrects qui utilisent Int32 pour les handles au lieu de IntPtr.

  • Cast de IntPtr en Int32.

Pour plus d'informations sur le portage d'une application 32 bits destinée à s'exécuter sur le CLR 64 bits, consultez Migration du code managé 32 bits vers du code managé 64 bits (page éventuellement en anglais) sur le site Web MSDN.

Informations générales sur la programmation en 64 bits

Pour des informations générales sur la programmation en 64 bits, consultez les documents suivants :

Prise en charge du compilateur pour créer des applications 64 bits

Par défaut, lorsque vous utilisez .NET Framework 2.0 pour générer une application sur un ordinateur 32 bits ou 64 bits, l'application s'exécute sur un ordinateur 64 bits en tant qu'application native (en d'autres termes, pas sous WOW64). Le tableau suivant répertorie les documents qui permettent d'apprendre à utiliser les compilateurs Visual Studio pour créer des applications 64 bits qui s'exécutent en tant qu'applications natives ou sous WOW64, ou les deux à la fois.

Compilateur

Option du compilateur

Visual Basic

/platform (Visual Basic)

Visual C#

/platform (Options du compilateur C#)

Visual C++

Vous pouvez créer des applications MSIL (Microsoft Intermediate Language) indépendantes des plateformes via /clr:safe. Pour plus d'informations, consultez /clr (Compilation pour le Common Language Runtime).

Visual C++ comprend un compilateur distinct pour chaque système d'exploitation 64 bits. Pour plus d'informations sur l'utilisation de Visual C++ pour créer des applications natives qui s'exécutent sur un système d'exploitation Windows 64 bits, consultez Programmation 64 bits avec Visual C++.

JScript

/platform (Visual Studio - JScript)

Déterminer l'état d'un fichier .exe ou .dll

Pour déterminer si un fichier .exe ou .dll est destiné à être exécuté uniquement sur une plateforme spécifique ou sous WOW64, utilisez corflags.exe à l'invite de commandes. Vous pouvez également utiliser corflags.exe pour modifier l'état de plateforme d'un fichier .exe ou .dll. Pour plus d'informations, consultez CorFlags.exe (outil de conversion CorFlags). L'en-tête CLR (ou en-tête COM+ Runtime) d'un assembly Visual Studio possède un numéro de version de runtime majeur ayant la valeur 2 et un numéro de version de runtime mineur ayant la valeur 5 (0 dans les assemblys Visual Studio .NET 2003). Les applications dont la version de runtime mineure est 0 sont traitées comme des applications héritées (legacy) et toujours exécutées sous WOW64.

Pour interroger par programmation un fichier .exe ou .dll afin de déterminer s'il est destiné à être exécuté uniquement sur une plateforme spécifique ou sous WOW64, utilisez la méthode GetPEKind.

Voir aussi

Autres ressources

Windows-Based Applications and Components

Historique des modifications

Date

Historique

Motif

Août 2010

Mise à jour des liens et des numéros de version.

Améliorations apportées aux informations.