Notes
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Lorsque vous compilez une application, vous pouvez spécifier qu’elle doit s’exécuter sur un système d’exploitation Windows 64 bits en tant qu’application native ou sous WOW64 (Windows 32 bits sur Windows 64 bits). 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 toutes les versions 64 bits du système d’exploitation Windows.
Exécution d’applications 32 bits et 64 bits sur Windows
Les applications 32 bits basées sur .NET Framework 4 ou versions ultérieures s’exécutent sous WOW64 sur des systèmes 64 bits.
Remarque
En raison de la conception de l’émulation x86 et du sous-système WOW64 pour la famille de processeurs Itanium, les applications sont limitées à l’exécution sur un seul processeur. Ces facteurs réduisent les performances et la scalabilité des applications .NET 32 bits qui s’exécutent sur des systèmes Itanium. Nous vous recommandons d’utiliser .NET Framework 4 ou version ultérieure, qui inclut une prise en charge native 64 bits pour les systèmes Itanium, pour améliorer les performances et l’extensibilité.
Par défaut, 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 de pas plus de 2 gigaoctets (Go). Toutefois, dans .NET Framework 4.5 et versions ultérieures, vous pouvez augmenter cette limite. Pour plus d'informations, consultez l'élément <gcAllowVeryLargeObjects>.
De nombreuses assemblies s'exécutent de façon identique sur le CLR 32 bits et le CLR 64 bits. Toutefois, certains programmes peuvent se comporter différemment, selon le CLR, s’ils contiennent un ou plusieurs des éléments suivants :
- Structures qui contiennent des membres qui changent de taille en fonction de la plateforme (par exemple, n’importe quel type de pointeur).
- Arithmétique du pointeur qui inclut des tailles constantes.
- Appel de plateforme incorrect ou déclarations COM qui utilisent
Int32
pour les handles au lieu deIntPtr
. - Code qui effectue la conversion de
IntPtr
enInt32
.
Pour plus d’informations sur le portage d’une application 32 bits à exécuter sur le CLR 64 bits, consultez Migration de code managé 32 bits vers 64 bits.
Informations générales sur la programmation 64 bits
Pour obtenir des informations générales sur la programmation 64 bits, consultez les documents suivants :
- Dans la documentation du Kit de développement logiciel (SDK) Windows, consultez le Guide de programmation pour Windows 64 bits.
- Pour plus d’informations sur la prise en charge de Visual Studio pour la création d’applications 64 bits, consultez prise en charge de l’IDE Visual Studio 64 bits.
Support du compilateur pour la création d'applications de 64 bits
Par défaut, lorsque vous utilisez .NET 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 (autrement dit, pas sous WOW64). Le tableau suivant répertorie les documents qui expliquent comment utiliser des compilateurs Visual Studio pour créer des applications 64 bits qui s’exécutent en tant qu’applications natives, sous WOW64 ou les deux.
Compilateur | Option du compilateur |
---|---|
Visual Basic | -platform (Visual Basic) |
Visual C# | -platform (options du compilateur C#) |
Visual C++ | Vous pouvez créer des applications CIL (Platform-agnostic, Common Intermediate Language) à l’aide de /clr :safe. Pour plus d’informations, consultez -clr (Compilation Common Language Runtime). Visual C++ inclut 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. |
Détermination de l’état d’un fichier .exe ou d’un fichier .dll
Pour déterminer si un fichier .exe ou .dll est destiné à s’exécuter uniquement sur une plateforme spécifique ou sous WOW64, utilisez CorFlags.exe (Outil de conversion CorFlags) sans options. Vous pouvez également utiliser CorFlags.exe pour modifier l’état de la plateforme d’un fichier .exe ou .dll fichier. L’en-tête CLR d’un assembly Visual Studio a le numéro de version du runtime principal défini sur 2 et le numéro de version du runtime secondaire défini sur 5. Les applications dont la version du runtime mineure est définie sur 0 sont traitées comme des applications héritées et sont toujours exécutées sous WOW64.
Pour interroger par programmation une .exe ou une .dll pour voir s’il est destiné à s’exécuter uniquement sur une plateforme spécifique ou sous WOW64, utilisez la Module.GetPEKind méthode.