Aplicaciones de 64 bits

Al compilar una aplicación, puede especificar que debe ejecutarse en un sistema operativo Windows de 64 bits como una aplicación nativa o bajo WOW64. WOW64 es un entorno de compatibilidad que permite a una aplicación de 32 bits ejecutarse en un sistema de 64 bits. WOW64 se incluye en el sistema.

Comentarios

Todas las aplicaciones compiladas con las versiones 1.0 o 1.1 de .NET Framework se tratan como aplicaciones de 32 bits y se ejecutan bajo WOW64 en common language runtime (CLR) de 32 bits en un sistema operativo de 64 bits. Además, las aplicaciones específicas de 32 bits que se compilan en .NET Framework versión 4 se ejecutarían bajo WOW64 en sistemas de 64 bits.

Visual Studio instala la versión de 32 bits de CLR en un equipo x86, y la versión de 32 bits y la versión de 64 bits apropiada de CLR en un equipo Windows de 64 bits. (Dado que Visual Studio 2010 es una aplicación de 32 bits, cuando se instala en un sistema de 64 bits, se ejecuta bajo WOW64).

NotaNota

Debido al diseño de emulación de x86 y al subsistema de WOW64 para la familia de procesadores Itanium, la ejecución de las aplicaciones está restringida a un único procesador.Estos factores reducen el rendimiento y la escalabilidad de las aplicaciones de 32 bits de .NET Framework que se ejecutan en sistemas basados en Itanium.Se recomienda que las aplicaciones que usen .NET Framework 1.1 se utilicen para aplicaciones cliente interactivas y no para aplicaciones que demanden un alto rendimiento o escalabilidad, por ejemplo, aplicaciones ASP.NET de carga alta.Si puede, utilice .NET Framework versión 4, que incluye compatibilidad con 64 bits nativa para sistemas basados en Itanium, para un mayor rendimiento y escalabilidad.

Cuando ejecute 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).

Muchos ensamblados se ejecutan de forma idéntica en el CLR de 32 bits y el CLR de 64 bits. Sin embargo, algunos programas pueden comportarse de manera diferente, dependiendo de CLR, por uno o varios de los siguientes motivos:

  • Structs que contengan miembros cuyo tamaño varía según la plataforma, por ejemplo, cualquier tipo de puntero.

  • Aritmética de punteros que incluya tamaños constantes.

  • Invocación incorrecta de la plataforma o declaraciones COM que utilicen Int32 para los controladores en lugar de IntPtr.

  • Convertir IntPtr en Int32.

Para obtener más información sobre cómo migrar una aplicación de 32 bits para que se ejecute en el CLR de 64 bits, vea Migrar código administrado de 32 bits a 64 bits en el sitio web de MSDN.

Información general de programación de 64 bits

Para obtener información general sobre la programación de 64 bits, vea los siguientes documentos:

Compatibilidad del compilador para crear aplicaciones de 64 bits

De forma predeterminada, cuando se utiliza .NET Framework 2.0 para compilar una aplicación en un equipo de 32 o 64 bits, se ejecutará la aplicación en un equipo de 64 bits como una aplicación nativa (es decir, no bajo WOW64). La siguiente tabla enumera los documentos que explican cómo usar los compiladores de Visual Studio para crear aplicaciones de 64 bits que se ejecuten como nativas, bajo WOW64, o en ambas situaciones.

Compilador

Opción del compilador

Visual Basic

/platform (Visual Basic)

Visual C#

/platform (Opciones del compilador de C#)

Visual C++

Puede crear aplicaciones del Lenguaje Intermedio de Microsoft (MSIL) independientes de la plataforma utilizando /clr:safe. Para obtener más información, vea /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 utilizar Visual C++ para crear aplicaciones nativas que se ejecuten en un sistema operativo Windows de 64 bits, vea Programación de 64 bits con Visual C++.

JScript

/platform (Visual Studio - JScript)

Determinar el estado de un archivo .exe o .dll

Para determinar si un archivo .exe o .dll está diseñado para que se ejecute solo en una plataforma específica o bajo WOW64, use corflags.exe en el símbolo del sistema. También puede utilizar corflags.exe para cambiar el estado de la plataforma de un archivo .exe o .dll. Para obtener más información, vea CorFlags.exe (Herramienta de conversión de CorFlags). El encabezado CLR (o encabezado del runtime de COM+) de un ensamblado de Visual Studio tiene el número primario de versión de runtime establecido en 2 y el número secundario de versión de runtime establecido en 5 (0 en los ensamblados de Visual Studio .NET 2003). Las aplicaciones que tienen el número secundario de versión de runtime establecido en 0 se tratan como aplicaciones heredadas y siempre se ejecutan bajo WOW64.

Para comprobar mediante programación si un archivo .exe o .dll está diseñado para que se ejecute solo en una plataforma específica o bajo WOW64, utilice el método GetPEKind.

Vea también

Otros recursos

Windows-Based Applications and Components

Historial de cambios

Fecha

Historial

Motivo

Agosto de 2010

Vínculos y números de versión actualizados.

Mejora de la información.