Applicazioni a 64 bit

Aggiornamento: novembre 2007

È possibile compilare l'applicazione e specificare che deve essere eseguita in un sistema operativo a 64 bit come applicazione nativa o in WOW64. WOW64 è un ambiente di compatibilità fornito dal sistema operativo che consente di eseguire un'applicazione a 32 bit in un sistema operativo Windows a 64 bit.

Osservazioni

Tutte le applicazioni compilate con le versioni 1.0 e 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. Inoltre, le applicazioni a 32 bit compilate con la versione 2.0 di .NET Framework vengono eseguite in WOW64 in piattaforme a 64 bit.

Con Visual Studio verrà installata la versione 2.0 a 32 bit di CLR in un computer x86 e la versione 2.0 sia a 32 che a 64 bit di CLR in un computer Windows a 64 bit. Visual Studio 2008 è un'applicazione a 32 bit e, se installata in un sistema operativo Windows a 64 bit, verrà eseguita in WOW64.

Nota:

A causa della progettazione dell'emulazione x86 e del sottosistema WOW64 della famiglia di processori Itanium, le applicazioni sono limitate all'esecuzione in un solo processore. L'esecuzione in un solo processore e l'emulazione x86 riducono le prestazioni e la scalabilità delle applicazioni .NET Framework a 32 bit eseguite in sistemi Itanium. È consigliabile utilizzare le applicazioni basate su .NET Framework versione 1.1 per applicazioni client interattive e non per applicazioni che richiedono prestazioni elevate o scalabilità, ad esempio applicazioni ASP.NET con carico elevato. Si consideri l'utilizzo di .NET Framework versione 2.0 che offre supporto a 64 bit nativo per sistemi Itanium, garantendo così maggiore scalabilità e migliori prestazioni.

Come con i sistemi operativi Windows a 32 bit, esiste un limite di 2 GB sulle dimensioni di un oggetto che è possibile creare con un'applicazione gestita a 64 bit eseguita in un sistema operativo Windows a 64 bit.

In molti casi gli assembly potranno essere eseguiti in CLR sia a 32 che a 64 bit. Un programma eseguito in CLR a 64 bit mostrerà un comportamento diverso in presenza di:

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

  • Operazioni aritmetiche che includono dimensioni costanti.

  • Richiamo della piattaforma errato o dichiarazioni COM che utilizzano Int32 anziché IntPtr per gli handle.

  • Cast di IntPtr su Int32.

Per ulteriori informazioni sul porting dell'applicazione a 32 bit affinché venga eseguita in CLR a 64 bit, vedere https://msdn.microsoft.com/library/?url=/library/en-us/dndotnet/html/64migrate.asp.

Informazioni generali sulla programmazione a 64 bit

Per informazioni generali sulla programmazione a 64 bit, vedere:

Per informazioni sul supporto nell'ambiente di sviluppo di Visual Studio per la creazione di applicazioni a 64 bit, vedere Supporto a 64 bit per l'ambiente di sviluppo di Visual Studio.

Supporto del compilatore per la creazione di applicazioni a 64 bit

Un'applicazione compilata tramite .NET Framework 2.0 (in un computer a 32 o 64 bit) per impostazione predefinita verrà eseguita come un'applicazione nativa (non in WOW64) in un computer a 64 bit. Nella tabella riportata di seguito vengono elencati gli argomenti relativi all'utilizzo di compilatori Visual Studio per creare applicazioni a 64 bit che verranno eseguite come native, in WOW64, o in entrambi i modi.

Compilatore

Opzione del compilatore

Visual Basic

/platform (Visual Basic)

Visual C#

/platform (specifica della piattaforma di output) (opzioni del compilatore C#)

Visual C++

È possibile creare applicazioni MSIL indipendenti dalla piattaforma con /clr:safe; per ulteriori informazioni, vedere /clr (Compilazione Common Language Runtime).

In Visual C++ sono disponibili compilatori separati destinati a 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 (JScript)

Determinazione dello stato di un file exe o dll

Utilizzare corflags.exe alla riga di comando per verificare se un file exe o dll può essere eseguito unicamente in una piattaforma specifica o in WOW64. È anche possibile utilizzare corflags.exe per modificare lo stato di piattaforma di un file exe o dll. Per ulteriori informazioni, vedere Strumento di conversione CorFlags (CorFlags.exe). Nell'intestazione CLR di un assembly di Visual Studio (o intestazione runtime COM+) il numero di versione per la fase di esecuzione principale è impostato su 2, mentre quello secondario è impostato su 5. Negli assembly di Visual Studio 2003, sono rispettivamente 2 e 0. Tutte le applicazioni per le quali il numero di versione per la fase di esecuzione secondario è impostato su 0 sono considerate applicazioni legacy e vengono sempre eseguite in WOW64 in computer a 64 bit.

Utilizzare GetPEKind per verificare a livello di codice se un file exe o dll può essere eseguito unicamente in una piattaforma specifica o in WOW64.

Vedere anche

Altre risorse

Applicazioni, componenti e servizi basati su Windows