Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Ao compilar um aplicativo, você pode especificar que ele deve ser executado em um sistema operacional Windows de 64 bits como um aplicativo nativo ou em WOW64 (Windows 32 bits no Windows 64 bits). WOW64 é um ambiente de compatibilidade que permite que um aplicativo de 32 bits seja executado em um sistema de 64 bits. WOW64 está incluído em todas as versões de 64 bits do sistema operacional Windows.
Executando aplicativos de 32 bits versus 64 bits no Windows
Aplicativos de 32 bits criados no .NET Framework 4 ou versões posteriores são executados em WOW64 em sistemas de 64 bits.
Observação
Devido ao design da emulação x86 e do subsistema WOW64 para a família de processadores do Itanium, os aplicativos são restritos à execução em um processador. Esses fatores reduzem o desempenho e a escalabilidade de aplicativos .NET de 32 bits executados em sistemas baseados em Itanium. Recomendamos que você use o .NET Framework 4 ou posterior, que inclui suporte nativo de 64 bits para sistemas baseados em Itanium, para aumentar o desempenho e a escalabilidade.
Por padrão, quando você executa um aplicativo gerenciado de 64 bits em um sistema operacional Windows de 64 bits, pode criar um objeto de no máximo 2 gigabytes (GB). No entanto, no .NET Framework 4.5 e posterior, você pode aumentar esse limite. Para obter mais informações, consulte o <elemento gcAllowVeryLargeObjects>.
Muitos assemblies são executados de modo idêntico no CLR de 32 bits e no CLR de 64 bits. No entanto, alguns programas poderão se comportar de forma diferente, dependendo do CLR, se contiverem um ou mais dos seguintes:
- Estruturas que contêm membros que alteram o tamanho de acordo com a plataforma (por exemplo, qualquer tipo de ponteiro).
- Aritmética de ponteiro que inclui tamanhos constantes.
- As declarações COM ou de invocação de plataforma incorreta que usam
Int32para identificadores em vez deIntPtr. - Código que é convertido
IntPtremInt32.
Para obter mais informações sobre como portar um aplicativo de 32 bits para ser executado no CLR de 64 bits, consulte Migrando o Código Gerenciado de 32 bits para 64 bits.
Informações gerais de programação de 64 bits
Para obter informações gerais sobre programação de 64 bits, consulte os seguintes documentos:
- Na documentação do SDK do Windows, consulte o Guia de Programação para Windows de 64 bits.
- Para obter informações sobre o suporte do Visual Studio para criar aplicativos de 64 bits, consulte o Suporte do Visual Studio IDE de 64 bits.
Suporte ao compilador para criar aplicativos de 64 bits
Por padrão, quando você usa o .NET para criar um aplicativo em um computador de 32 bits ou 64 bits, o aplicativo será executado em um computador de 64 bits como um aplicativo nativo (ou seja, não em WOW64). A tabela a seguir lista documentos que explicam como usar compiladores do Visual Studio para criar aplicativos de 64 bits que serão executados como nativos, em WOW64 ou ambos.
| Compilador | Opção do compilador |
|---|---|
| Visual Basic | -platform (Visual Basic) |
| Visual C# | -platform (opções do compilador C#) |
| Visual C++ | Você pode criar aplicativos CIL (linguagem intermediária comum) independentes de plataforma usando /clr:safe. Para obter mais informações, consulte -clr (Common Language Runtime Compilation). O Visual C++ inclui um compilador separado para cada sistema operacional de 64 bits. Para obter mais informações sobre como usar o Visual C++ para criar aplicativos nativos executados em um sistema operacional Windows de 64 bits, consulte Programação de 64 bits. |
Determinando o status de um arquivo .exe ou arquivo .dll
Para determinar se um arquivo .exe ou .dll deve ser executado apenas em uma plataforma específica ou no WOW64, use CorFlags.exe (Ferramenta de Conversão CorFlags) sem opções. Você também pode usar CorFlags.exe para alterar o status da plataforma de um arquivo .exe ou .dll arquivo. O cabeçalho CLR de um assembly do Visual Studio tem o número de versão principal do runtime definido como 2 e o número de versão secundário do runtime definido como 5. Os aplicativos que têm a versão de runtime secundária definida como 0 são tratados como aplicativos herdados e sempre são executados em WOW64.
Para consultar programaticamente um .exe ou .dll para ver se ele deve ser executado apenas em uma plataforma específica ou em WOW64, use o Module.GetPEKind método.