Aplicaciones de 64 bits

Actualización: noviembre 2007

Puede compilar su aplicación y especificar que debe ejecutarse en un sistema operativo de 64 bits como una aplicación nativa o bajo WOW64. WOW64 es un entorno de compatibilidad facilitado por el sistema operativo que permite que una aplicación de 32 bits se ejecute en un sistema operativo de 64 bits de Windows.

Comentarios

Todas las aplicaciones generadas con las versiones 1.0 y 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 generadas con la versión 2.0 de .NET Framework se ejecutarían bajo WOW64 en las plataformas de 64 bits.

Visual Studio instala la versión 2.0 de 32 bits de CLR en equipos x86, y la versión 2.0 de 32 bits y de 64 bits en equipos Windows de 64 bits. (Visual Studio 2008 es una aplicación de 32 bits; cuando se instala en un sistema operativo Windows de 64 bits se ejecuta bajo WOW64.)

Nota:

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. La ejecución y la emulación de x86 en un único procesador reducen el rendimiento y escalabilidad de las aplicaciones de .NET Framework de 32 bits que se ejecutan en sistemas basados en Itanium. Se recomienda que dichas aplicaciones usen .NET Framework Versión 1.1 para las aplicaciones interactivas de cliente, y no para aplicaciones que demanden un alto rendimiento o escalabilidad, por ejemplo las aplicaciones ASP.NET de carga alta. Considere la posibilidad de utilizar .NET Framework Versión 2.0, que incluye compatibilidad con 64 bits nativa para los sistemas basados en Itanium, para un mayor rendimiento y escalabilidad.

Al igual que con los sistemas operativos Windows de 32 bits, existe un límite de 2 GB en el tamaño de un objeto que pueda crear al ejecutar una aplicación administrada de 64 bits en un sistema operativo de 64 bits.

En muchos casos, los ensamblados se ejecutarán igual en el CLR de 32 bits o de 64 bits. Entre las razones para que un programa se comporte de manera diferente si lo ejecuta el CLR de 64 bits se incluyen:

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

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

  • Una invocación incorrecta de la plataforma o declaraciones COM que utilicen Int32 para los identificadores en lugar de IntPtr.

  • La conversión de IntPtr a Int32.

Para obtener más información sobre cómo trasladar la aplicación de 32 bits para que se ejecute en el CLR de 64 bits, vea https://msdn2.microsoft.com/es-es/library/ms973190.aspx.

Información general de programación de 64 bits

Para obtener información general sobre los problemas de programación de 64 bits vea,

Para obtener información sobre la compatibilidad en el entorno de desarrollo de Visual Studio para crear aplicaciones de 64 bits, vea Compatibilidad con la programación de 64 bits del entorno de desarrollo de Visual Studio.

Compatibilidad del compilador para crear aplicaciones de 64 bits

Una aplicación generada mediante .NET Framework 2.0 (en un equipo de 32 o 64 bits) se ejecutará de forma predeterminada como una aplicación nativa (no bajo WOW64) en un equipo de 64 bits. La siguiente tabla enumera temas 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 (Especificar la plataforma de los resultados) (Opciones del compilador de C#)

Visual C++

Puede crear aplicaciones de MSIL válidas para la plataforma con /clr:safe; vea /clr (Compilación de Common Language Runtime) para obtener más información.

Visual C++ distribuye compiladores independientes destinados a cada sistema operativo de 64 bits. Para obtener información adicional 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 (JScript)

Determinar el estado de un archivo .exe o .dll

Use corflags.exe en la línea de comandos para ver si un archivo .exe o .dll sólo se puede ejecutar en una plataforma específica o bajo WOW64. También puede utilizar corflags.exe para cambiar el estado de la plataforma de un archivo .exe o .dll. Vea Herramienta de conversión de CorFlags (CorFlags.exe) para obtener más información. Un encabezado CLR de un ensamblado de Visual Studio (o encabezado de motor de ejecución de COM+) tiene el número primario de versión de motor de ejecución establecido en 5 y el número secundario de versión de motor de ejecución establecido en 2. En los ensamblados de Visual Studio 2003, son 2 y 0, respectivamente. Todas las aplicaciones que tiene la versión en tiempo de ejecución secundaria establecida en 0 se tratan como aplicaciones heredadas y siempre se ejecutan bajo WOW64 en equipos de 64 bits.

Use GetPEKind para comprobar mediante programación si un archivo .exe o .dll sólo se puede ejecutar en una plataforma específica o bajo WOW64.

Vea también

Otros recursos

Aplicaciones, componentes y servicios basados en Windows