Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Al compilar una aplicación, puede especificar que se debe ejecutar en un sistema operativo Windows de 64 bits como una aplicación nativa o en WOW64 (Windows de 32 bits en Windows de 64 bits). WOW64 es un entorno de compatibilidad que permite que una aplicación de 32 bits se ejecute en un sistema de 64 bits. WOW64 se incluye en todas las versiones de 64 bits del sistema operativo Windows.
Ejecución de aplicaciones de 32 bits frente a aplicaciones de 64 bits en Windows
Las aplicaciones de 32 bits que se basan en .NET Framework 4 o versiones posteriores se ejecutan en WOW64 en sistemas de 64 bits.
Nota:
Debido al diseño de la emulación x86 y el subsistema WOW64 para la familia de procesadores Itanium, las aplicaciones están restringidas a la ejecución en un procesador. Estos factores reducen el rendimiento y la escalabilidad de las aplicaciones .NET de 32 bits que se ejecutan en sistemas basados en Itanium. Se recomienda usar .NET Framework 4 o posterior, que incluye compatibilidad nativa de 64 bits con sistemas basados en Itanium, para aumentar el rendimiento y la escalabilidad.
De forma predeterminada, al ejecutar una aplicación administrada de 64 bits en un sistema operativo Windows de 64 bits, puede crear un objeto de no más de 2 gigabytes (GB). Sin embargo, en .NET Framework 4.5 y versiones posteriores, puede aumentar este límite. Para obtener más información, vea el <elemento gcAllowVeryLargeObjects>.
Muchos ensamblados se ejecutan de forma idéntica tanto en CLR de 32 bits como en CLR de 64 bits. Sin embargo, algunos programas pueden comportarse de forma diferente, dependiendo del CLR, si contienen uno o varios de los siguientes:
- Estructuras que contienen miembros que cambian de tamaño en función de la plataforma (por ejemplo, cualquier tipo de puntero).
- Aritmética de puntero que incluye tamaños constantes.
- Invocación incorrecta de la plataforma o declaraciones COM que utilicen
Int32
para los controladores en lugar deIntPtr
. - Código que convierte
IntPtr
enInt32
.
Para obtener más información sobre cómo migrar una aplicación de 32 bits para que se ejecute en CLR de 64 bits, consulte Migración de código administrado de 32 bits a 64 bits.
Información general de programación de 64 bits
Para obtener información general sobre la programación de 64 bits, consulte los siguientes documentos:
- En la documentación de Windows SDK, consulte Guía de programación para Windows de 64 bits.
- Para obtener información sobre la compatibilidad de Visual Studio con la creación de aplicaciones de 64 bits, consulte Compatibilidad con IDE de Visual Studio de 64 bits.
Compatibilidad del compilador para crear aplicaciones de 64 bits
De forma predeterminada, cuando se usa .NET para compilar una aplicación en un equipo de 32 bits o de 64 bits, la aplicación se ejecutará en un equipo de 64 bits como una aplicación nativa (es decir, no en WOW64). En la tabla siguiente se enumeran documentos que explican cómo usar compiladores de Visual Studio para crear aplicaciones de 64 bits que se ejecutarán como nativas, en WOW64 o ambas.
Compilador | Opción del compilador |
---|---|
Visual Basic | -platform (Visual Basic) |
Visual C# | -platform (Opciones del compilador de C#) |
Visual C++ | Puede crear aplicaciones de lenguaje intermedio común (CIL) independientes de la plataforma mediante /clr:safe. Para obtener más información, consulte -clr (Compilación de Common Language Runtime). Visual C++ incluye un compilador independiente para cada sistema operativo de 64 bits. Para obtener más información sobre cómo usar Visual C++ para crear aplicaciones nativas que se ejecutan en un sistema operativo Windows de 64 bits, vea Programación de 64 bits. |
Determinar el estado de un archivo de .exe o archivo de .dll
Para determinar si un archivo .exe o .dll está destinado a ejecutarse solo en una plataforma específica o bajo WOW64, use CorFlags.exe (Herramienta de Conversión CorFlags) sin opciones. También puede usar CorFlags.exe para cambiar el estado de la plataforma de un archivo .exe o .dll. El encabezado CLR de un ensamblado de Visual Studio tiene el número de versión principal del entorno de ejecución establecido en 2 y el número de versión del entorno de ejecución secundario establecido en 5. Las aplicaciones que tienen la versión secundaria en tiempo de ejecución establecida en 0 se tratan como aplicaciones heredadas y siempre se ejecutan en WOW64.
Para consultar mediante programación un .exe o .dll para ver si está diseñado para ejecutarse solo en una plataforma específica o en WOW64, use el Module.GetPEKind método .