Esporta (0) Stampa
Espandi tutto
Il presente articolo è stato tradotto automaticamente. Passare il puntatore sulle frasi nell'articolo per visualizzare il testo originale. Ulteriori informazioni.
Traduzione
Originale

Applicazioni a 64 bit

Quando si compila un'applicazione, è possibile specificare se deve essere eseguita in un sistema operativo Windows a 64 bit come applicazione nativa o in WOW64 (Windows 32-bit on Windows 64-bit). WOW64 è un ambiente di compatibilità che consente di eseguire un'applicazione a 32 bit in un sistema a 64 bit. WOW64 è incluso in tutte le versioni a 64 bit del sistema operativo Windows.

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

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

Nota Nota

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. Raccomandiamo l' utilizzo di .NET Framework 4 che offre supporto nativo a 64 bit per i sistemi Itanium, garantendo così maggiore scalabilità e migliori prestazioni.

Come impostazione predefinita, quando si esegue un'applicazione gestita a 64 bit in un sistema operativo Windows a 64 bit, è possibile creare un oggetto non più grande di 2 gigabytes (GB). Tuttavia, in .NET Framework 4.5, è possibile aumentare questo limite. Per ulteriori informazioni, vedere elemento di <gcAllowVeryLargeObjects> .

Molti assembly vengono eseguiti in modo identico nel common language runtime a 32 bit sia nel common language runtime a 64 bit. In ogni caso, alcuni programmi si posso comportare diversamente, a seconda del CLR, per uno o più dei seguenti casi:

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

  • Operazioni aritmetiche che includono dimensioni costanti.

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

  • Il codice che fa il cast IntPtr a Int32.

Per ulteriori informazioni su come eseguire il trasferimento di un'applicazione a 32 bit in modo che funzioni su CLR a 64 bit, vedere Eseguire la migrazione del codice gestito da 32 bit a 64 bit nella MSDN Library.

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

Per impostazione predefinita, quando si utilizza .NET Framework per compilare un'applicazione in un computer a 32 o 64 bit, l'applicazione verrà eseguita nativamente in un computer a 64 bit (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 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 (Compilazione Common Language Runtime).

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 64-bit Programming.

Per determinare se un file .exe o .dll debba essere eseguito solo su una piattaforma specifica o in WOW64, utilizzare CorFlags.exe (strumento di conversione CorFlags) senza opzioni. È anche possibile utilizzare CorFlags.exe per modificare lo stato di piattaforma di un file .exe o .dll. Per l'intestazione CLR 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. 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 Module.GetPEKind.

Aggiunte alla community

AGGIUNGI
Mostra:
© 2014 Microsoft