Applicazioni a 64 bit

Quando si compila un'applicazione, è possibile specificare che deve essere eseguita in un sistema operativo Windows a 64 bit come applicazione nativa o in WOW64. WOW64 è un ambiente di compatibilità che consente di eseguire un'applicazione a 32 bit in un sistema a 64 bit. WOW64 è incluso nel sistema.

Osservazioni

Tutte le applicazioni compilate con le versioni 1.0 o 1.1 di .NET Framework vengono considerate applicazioni a 32 bit e vengono sempre eseguite in WOW64 nel Common Language Runtime (CLR) a 32 bit in un sistema operativo a 64 bit. Le applicazioni a 32 bit compilate in .NET Framework versione 4 vengono eseguite in WOW64 in sistemi a 64 bit.

In Visual Studio viene installata la versione a 32 bit di CLR in un computer x86 ed entrambe le versioni a 32 bit e a 64 bit di CLR in un computer Windows a 64 bit. Poiché Visual Studio 2010 è un'applicazione a 32 bit, quando viene installato in un sistema a 64 bit, viene eseguito in WOW64.

NotaNota

Data la progettazione dell'emulazione x86 e del sottosistema WOW64 per la famiglia di processori Itanium, le applicazioni sono limitate all'esecuzione in un solo processore.Questi fattori riducono le prestazioni e la scalabilità delle applicazioni .NET Framework a 32 bit eseguite nei sistemi Itanium.Si consiglia di utilizzare le applicazioni che utilizzano .NET Framework 1.1 per applicazioni client interattive e non per applicazioni che richiedono scalabilità o prestazioni elevate, ad esempio applicazioni ASP.NET a carichi elevati.Se possibile, utilizzare .NET Framework versione 4 che offre supporto a 64 bit nativo per i sistemi Itanium, garantendo così maggiore scalabilità e migliori prestazioni.

Quando si esegue un'applicazione gestita a 64 bit in un sistema operativo Windows a 64 bit, è possibile creare un oggetto di non più di 2 GB.

Molti assembly vengono eseguiti in modo identico nel common language runtime a 32 bit sia nel common language runtime a 64 bit. È tuttavia possibile che alcuni programmi si comportino diversamente, a seconda di CLR, per uno o più dei motivi seguenti:

  • Strutture contenenti membri che cambiano dimensione in base alla piattaforma, ad esempio i tipi puntatore.

  • Operazioni aritmetiche che includono dimensioni costanti.

  • Chiamata piattaforma non corretta o dichiarazioni COM che utilizzano Int32 anzichè IntPtr per gli handle.

  • Casting di IntPtr su Int32.

Per ulteriori informazioni su come eseguire il porting di un'applicazione a 32 bit per l'esecuzione in CLR a 64 bit, vedere Migrazione di codice gestito a 32 bit a 64 bit sul sito Web di MSDN.

Informazioni generali sulla programmazione a 64 bit

Per informazioni generali sulla programmazione a 64 bit, vedere i documenti seguenti:

Supporto del compilatore per la creazione di applicazioni a 64 bit

Per impostazione predefinita, quando si utilizza .NET Framework 2.0 per compilare un'applicazione in un computer a 32 o 64 bit, l'applicazione verrà eseguita in un computer a 64 bit come applicazione nativa, ovvero non in WOW64. Nella tabella riportata di seguito vengono elencati i documenti relativi all'utilizzo dei compilatori di Visual Studio per creare applicazioni a 64 bit che verranno eseguite come applicazioni native, in WOW64 o in entrambi i modi.

Compilatore

Opzione del compilatore

Visual Basic

/platform (Visual Basic)

Visual C#

/platform (opzioni del compilatore C#)

Visual C++

È possibile creare applicazioni Microsoft intermediate language (MSIL) indipendenti dalla piattaforma utilizzando /clr:safe. Per ulteriori informazioni, vedere /clr (Common Language Runtime Compilation).

In Visual C++ è incluso un compilatore separato per ogni sistema operativo a 64 bit. Per ulteriori informazioni sull'utilizzo di Visual C++ per creare applicazioni native eseguibili in un sistema operativo Windows a 64 bit, vedere Programmazione a 64 bit con Visual C++.

JScript

/platform (Visual Studio - JScript)

Determinazione dello stato di un file exe o dll

Per determinare se un file exe o dll deve essere eseguito solo su una piattaforma specifica o in WOW64, utilizzare corflags.exe al prompt dei comandi. È anche possibile utilizzare corflags.exe per modificare lo stato di piattaforma di un file exe o dll. Per ulteriori informazioni, vedere CorFlags.exe (strumento di conversione CorFlags). Per l'intestazione CLR (o l'intestazione di runtime COM+) di un assembly Visual Studio il numero di versione di runtime principale è impostato su 2, mentre il numero di versione di runtime secondario è impostato su 5 (0 negli assembly di Visual Studio .NET 2003). Le applicazioni per le quali il numero di versione di runtime secondario è impostato su 0 sono considerate applicazioni legacy e vengono sempre eseguite in WOW64 in computer a 64 bit.

Per eseguire query a livello di codice su un file exe o dll per accertarsi se deve essere eseguito solo su una piattaforma specifica o in WOW64, utilizzare il metodo GetPEKind.

Vedere anche

Altre risorse

Windows-Based Applications and Components

Cronologia delle modifiche

Data

Cronologia

Motivo

Agosto 2010

Aggiornati i collegamenti e i numeri di versione.

Miglioramento delle informazioni.