Introduzione
L'hotfix descritto in questo articolo corregge i seguenti problemi in Microsoft Visual Studio 2010.
Problema 1
Si verifichi un comportamento imprevisto quando si esegue un'applicazione che dispone di cicli nel codice sorgente. Questo problema si verifica se il codice sorgente viene compilato con l'ottimizzazione globale (/ Og) attivata.
Problema 2
Si consideri lo scenario seguente:
-
Si dispone di un progetto di Visual C++ che include il file Atlcomcli.h.
-
Specificare l'opzione del compilatore /J per definire laCHAR_UNSIGNEDmacro del progetto.
-
Compilare il progetto.
In questo scenario, viene visualizzato uno dei seguenti messaggi di errore:
-
Errore C2338: CVarTypeInfo < char > non può essere compilato con il flag /J o CHAR_UNSIGNED abilitato
-
Errore C2338: CVarTypeInfo < char * > non può essere compilato con il flag /J o CHAR_UNSIGNED abilitato
Problema 3
Si verifica una violazione di accesso quando si esegue un'applicazione Visual C++ per versioni basate su x86 di Windows. Questo problema si verifica quando l'applicazione dispone di una struttura ad albero dell'espressione che ha due argomenti di input di tipo matrice.
Causa
Causa del problema 1
Questo problema si verifica perché viene eseguita un'ottimizzazione del ciclo non corretto. Ciò causa la generazione di codice non corretto.
Causa del problema 2
Questo problema si verifica perché asserzioni statiche nel file Atlcomcli.h non sono impostate correttamente per l'opzione /J e la macro CHAR_UNSIGNED.
Causa del problema 3
Questo problema si verifica perché gli argomenti nelle istruzioni push vengono mescolati. Pertanto, vengono passati argomenti non corretti per inviare istruzioni.
Ulteriori informazioni
Informazioni sull'hotfix
Un hotfix supportato è ora disponibile da Microsoft. Tuttavia è destinato esclusivamente alla risoluzione del problema descritto in questo articolo. Applicarlo solo ai sistemi in cui si verificano questo problema specifico. Questo hotfix potrebbe essere sottoposto ad ulteriori test. Pertanto, se il problema non causa gravi difficoltà, consiglia di attendere la successiva di Visual Studio 2010 contenente tale hotfix.
Per risolvere immediatamente questo problema, contattare il supporto tecnico clienti Microsoft per ottenere l'hotfix. Per un elenco completo dei numeri di telefono supporto tecnico clienti Microsoft e informazioni sui costi dell'assistenza, visitare il seguente sito Web Microsoft:
http://support.microsoft.com/contactus/?ws=supportNota: In casi particolari, le spese normalmente addebitate per le chiamate di supporto potrebbero essere annullate qualora un addetto al supporto Microsoft determina che uno specifico aggiornamento risolverà il problema. I costi di supporto normale verranno applicati per eventuali ulteriori domande e problemi che non dovessero rientrare nello specifico aggiornamento in questione.
Prerequisiti
È necessario disporre di Microsoft Visual Studio 2010 per applicare questo hotfix.
Richiesta di riavvio
Non è necessario riavviare il computer dopo avere applicato l'hotfix se non viene utilizzato alcun file interessato.
Informazioni sulla sostituzione dell'aggiornamento rapido
Questo hotfix non sostituisce eventuali altri aggiornamenti rapidi.
Informazioni sui file
La versione inglese di questo hotfix presenta gli attributi di file (o attributi successivi) elencati nella tabella riportata di seguito. Le date e ore dei file sono elencate in base al formato UTC (Coordinated Universal Time Coordinated). Quando si visualizzano le informazioni sul file, viene convertito in ora locale. Per calcolare la differenza tra ora UTC e ora locale, utilizzare il
Fuso orario
scheda di
Data e ora
elemento nel Pannello di controllo.
Nome del file |
Versione del file |
Dimensione del file |
Data |
Ora |
Piattaforma |
---|---|---|---|---|---|
C2.dll |
16.0.30319.314 |
2,510,144 |
30-May-2010 |
20:48 |
x86 |
C2.dll |
16.0.30319.314 |
2,588,480 |
30-May-2010 |
20:48 |
x86 |
C2.dll |
16.0.30319.314 |
2,630,976 |
30-May-2010 |
20:48 |
x86 |
C2.dll |
16.0.30319.314 |
2,977,600 |
30-May-2010 |
20:48 |
x64 |
C2.dll |
16.0.30319.314 |
7,351,616 |
30-May-2010 |
20:48 |
IA-64 |
Soluzione alternativa
Soluzione per problema 1
Per risolvere questo problema, disattivare l'ottimizzazione globale. Per ulteriori informazioni su come disattivare l'ottimizzazione globale, fare clic sul numero riportato di seguito per visualizzare l'articolo della Microsoft Knowledge Base:
216181 FIX: il corretto codice generato con /Og ottimizzazione
Soluzione per problema 2
Per risolvere questo problema, utilizzare la seguente direttiva pragma per includere il file Atlcomcli.h.
#pragma push_macro("ATLSTATIC_ASSERT")
#undef ATLSTATIC_ASSERT
#define ATLSTATIC_ASSERT(x,y)
#include <atlcomcli.h>
#undef ATLSTATIC_ASSERT
#pragma pop_macro("ATLSTATIC_ASSERT")