Applications 64 bits
Mise à jour : novembre 2007
Vous pouvez compiler votre application et spécifier si elle doit être exécutée sur un système d'exploitation 64 bits comme une application native ou sous WOW64. WOW64 est un environnement de compatibilité fourni par le système d'exploitation et qui permet d'exécuter une application 32 bits sur un système d'exploitation Windows 64 bits.
Notes
Toutes les applications générées avec les versions 1.0 et 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. De plus, les applications 32 bits spécifiques générées avec la version 2.0 du .NET Framework pourraient s'exécuter sous WOW64 sur les plateformes 64 bits.
Visual Studio installera la version 32 bits 2.0 de CLR sur un ordinateur x86 et la version 32 bits ainsi que la version 64 bits 2.0 appropriée de CLR sur un ordinateur fonctionnant sous Windows 64 bits. (Visual Studio 2008 est une application 32 bits ; lorsqu'il est installé sur un système d'exploitation Windows 64 bits, il s'exécute sous WOW64.)
Remarque : |
---|
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. L'exécution sur un seul processeur et l'émulation x86 réduisent les performances et l'évolutivité des applications .NET Framework 32 bits exécutées sur des systèmes basés sur Itanium. Il est préférable que les applications utilisant .NET Framework Version 1.1 servent à des applications clientes interactives, mais non à des applications qui requièrent un haut niveau de performances ou d'évolutivité, telles que les applications ASP.NET à forte charge. Si possible, pour de meilleures performances et évolutivité, utilisez le .NET Framework Version 2.0, qui prend en charge les 64 bits en natif pour les systèmes basés sur Itanium. |
Tout comme sur les systèmes d'exploitation Windows 32 bits, la taille des objets que vous pouvez créer en exécutant une application 64 bits managée sur un système d'exploitation Windows 64 bits est limitée à 2 Go.
Dans de nombreux cas, les assemblys seront exécutés aussi bien sur le CLR 32 bits ou 64 bits. Un programme peut avoir un comportement différent lorsqu'il est exécuté par le CLR 64 bits pour les 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 code non managé ou des déclarations COM incorrects qui utilisent Int32 pour les handles au lieu de IntPtr.
Des casts de IntPtr en Int32.
Pour plus d'informations sur le portage de votre application 32 bits sur le CLR 64 bits, consultez https://msdn.microsoft.com/library/?url=/library/en-us/dndotnet/html/64migrate.asp.
Informations générales sur la programmation en 64 bits
Pour des informations générales sur les problèmes de programmation en 64 bits, consultez
Guide de programmation pour Windows 64 bits (documentation du Kit de développement logiciel (SDK) Windows, également disponible sur le site Web MSDN)
Voir https://msdn2.microsoft.com/fr-fr/netframework/aa731542.aspx pour plus d'informations sur le téléchargement d'une version 64 bits du Common Language Runtime.
Pour plus d'informations sur la prise en charge de la création d'applications 64 bits dans l'environnement de développement Visual Studio, consultez Prise en charge de l'environnement de développement Visual Studio 64 bits.
Prise en charge du compilateur pour créer des applications 64 bits
Une application générée à l'aide du .NET Framework 2.0 (sur un ordinateur 32 bits ou 64 bits) s'exécutera par défaut sur un ordinateur 64 bits comme une application native (et non sous WOW64). Le tableau suivant répertorie les rubriques qui traitent de l'utilisation des compilateurs Visual Studio pour créer des applications 64 bits qui peuvent être exécutées soit en natif, soit sous WOW64, ou les deux à la fois.
Compilateur |
Option du compilateur |
---|---|
Visual Basic |
|
Visual C# |
/platform (Spécifier la plate-forme de sortie) (Options du compilateur C#) |
Visual C++ |
Vous pouvez créer des applications MSIL indépendantes de la plateforme avec /clr:safe ; consultez /clr (Compilation pour le Common Language Runtime) pour plus d'informations. Visual C++ expédie des compilateurs distincts consacrés chacun à un 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 |
Déterminer l'état d'un .exe ou .dll
Utilisez corflags.exe sur la ligne de commande pour voir si un .exe ou .dll est destiné à être exécuté uniquement sur une plateforme spécifique ou sous WOW64. Vous pouvez également utiliser corflags.exe pour modifier l'état de plateforme d'un .exe ou .dll. Consultez Outil de conversion CorFlags (CorFlags.exe) pour plus d'informations. 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 de 2 et un numéro de version de runtime mineur de 5. Dans les assemblys Visual Studio 2003, ils sont respectivement de 2 et 0. Toutes les applications dont la version de runtime mineure est de 0 sont traitées comme des applications héritées (legacy) et toujours exécutées sous WOW64 sur les ordinateurs 64 bits.
Utilisez le GetPEKind pour interroger par programme un .exe ou .dll afin de savoir s'il est destiné à être exécuté uniquement sur une plateforme spécifique ou sous WOW64.