Sintomi
Considerare lo scenario descritto di seguito:
-
È disponibile un progetto di Visual C++ 2010. Il codice sorgente del progetto ha una struttura o classe che supera i 64 byte.
-
La compilazione del progetto per una piattaforma basata su x64 e si utilizza l'opzione del compilatore /O2 .
-
Si esegue l'applicazione.
In questo scenario, si verifica una violazione di accesso e l'applicazione si blocca.
Causa
Questo problema si verifica perché il compilatore basato su x64 di Visual Studio 2010 consente di ottimizzare il codice modificando l'allineamento di allocazione dei dati da 64 byte a 16 byte. Pertanto, si verifica un problema di memoria per gli oggetti che superano i 64 byte.
Risoluzione
Informazioni sull'hotfix
Un hotfix supportato è disponibile da Microsoft. Tuttavia, questo hotfix è destinato esclusivamente alla correzione del problema descritto in questo articolo. Applicare questo hotfix solo ai sistemi in cui si verificano questo problema specifico. Questo hotfix potrebbe essere sottoposto ad ulteriori test. Se il problema non causa gravi difficoltà, si consiglia di attendere il successivo aggiornamento software contenente tale hotfix. Per scaricare questo hotfix da MSDN Code Gallery, visitare il seguente sito Web Microsoft:
http://code.msdn.microsoft.com/KB2280741Nota MSDN Code Gallery vengono visualizzate le lingue per cui è disponibile l'hotfix. Se non viene visualizzata la lingua elencata, è perché la pagina delle risorse di Code Gallery non è disponibile per tale lingua. Nota Se si verificano ulteriori problemi o se è necessaria attività di risoluzione aggiuntiva, potrebbe essere necessario creare una richiesta di assistenza separata. I costi di supporto normale verranno applicati per eventuali ulteriori domande e problemi che non dovessero rientrare specifico hotfix in questione. Per un elenco completo dei numeri di telefono del servizio clienti Microsoft e supporto tecnico o per creare una richiesta di assistenza separata, visitare il seguente sito Web Microsoft:
http://support.microsoft.com/contactus/?ws=supportÈ inoltre possibile scaricare questo hotfix, visitare il seguente sito Web Microsoft:
https://connect.microsoft.com/VisualStudio/Downloads/DownloadDetails.aspx?DownloadID=31433
Requisiti
Per applicare questo hotfix, è necessario disporre di Visual Studio 2010 installato.
Richiesta di riavvio
Non è necessario riavviare il computer dopo avere applicato l'hotfix.
Informazioni sulla sostituzione degli hotfix
Questo hotfix non sostituisce eventuali altri aggiornamenti rapidi.
Informazioni sui file
La versione in lingua inglese di questo hotfix presenta gli attributi di file elencati nella tabella seguente (o attributi successivi). Le date e le ore di questi file sono espresse nel formato UTC (Coordinated Universal Time). Quando esaminate le informazioni del file, viene convertito in orario locale. Per calcolare la differenza tra ora UTC e ora locale, utilizzare la scheda fuso orario nell'elemento di Data e ora nel Pannello di controllo.
Nome file |
Versione file |
Dimensione file |
Date |
Ora |
Piattaforma |
---|---|---|---|---|---|
C2.dll |
16.0.30319.345 |
2,510,144 |
01-Aug-2010 |
23:42 |
x86 |
C2.dll |
16.0.30319.345 |
2,588,480 |
01-Aug-2010 |
23:42 |
x86 |
C2.dll |
16.0.30319.345 |
2,630,976 |
01-Aug-2010 |
23:42 |
x86 |
C2.dll |
16.0.30319.345 |
2,977,088 |
01-Aug-2010 |
23:42 |
x64 |
C2.dll |
16.0.30319.345 |
7,351,616 |
01-Aug-2010 |
23:42 |
IA-64 |
Soluzione alternativa
Per risolvere questo problema, non utilizzare l'opzione del compilatore /O2 quando si compila il progetto.
Stato
Microsoft ha confermato che questo problema si verifica nei prodotti elencati nella sezione "Si applica a".