FIX: "Se" condizione non funziona correttamente quando si esegue un'applicazione Visual C++ viene sviluppata in Visual Studio 2010 SP1

Traduzione articoli Traduzione articoli
Identificativo articolo: 2719783
Espandi tutto | Chiudi tutto

In questa pagina

Sintomi

Si consideri lo scenario seguente:
  • È possibile utilizzare Microsoft Visual Studio 2010 Service Pack 1 (SP1) per sviluppare un'applicazione Visual C++.
  • Il codice sorgente dell'applicazione soddisfa le condizioni seguenti:
    • Il codice sorgente contiene un'istruzione IF in un ciclo nidificato.
    • La condizione IF contiene un controllo che determina se una variabile di tipo integer con segno è negativa e anche un controllo che determina se la variabile integer con segno è superiore a un altro numero.
    • Il codice che si trova all'esterno la condizione IF dispone di una funzione lineare che utilizza la variabile con segno.
  • Per compilare l'applicazione utilizzando Visual Studio 2010 o il prompt dei comandi.

    Nota. È possibile compilare l'applicazione mentre è attivata un'opzione di compilazione.
  • Si esegue l'applicazione.
In questo scenario, l'istruzione se non funziona correttamente.

Risoluzione

Informazioni sull'hotfix

Un hotfix supportato è disponibile da Microsoft. Tuttavia, esso è destinato esclusivamente alla risoluzione del problema descritto in questo articolo. Applicarlo solo ai sistemi in cui si verificano questo problema specifico. Questo hotfix vengano eseguite ulteriori verifiche. Se dunque questo problema non causa gravi difficoltà, si consiglia di attendere il prossimo aggiornamento software contenente tale hotfix.

Per risolvere immediatamente questo problema, contattare il servizio di supporto tecnico clienti Microsoft per ottenere l'hotfix. Per un elenco completo dei numeri di telefono del servizio supporto tecnico clienti Microsoft e informazioni sui costi dell'assistenza, visitare il seguente sito Web Microsoft:
http://support.microsoft.com/contactus/?ws=support
Nota. In casi particolari, le spese normalmente addebitate per le chiamate al servizio supporto tecnico clienti Microsoft potrebbero essere annullate qualora un addetto del supporto tecnico Microsoft determina che uno specifico aggiornamento risolverà il problema. I costi di supporto usuali verranno applicati per eventuali ulteriori domande e problemi che non dovessero rientrare nello specifico aggiornamento in questione.

Prerequisiti

Per applicare questo hotfix, è necessario disporre di Visual Studio 2010 SP1.

Richiesta di riavvio

Non è necessario riavviare il computer dopo avere installato l'hotfix se i file interessati non vengono utilizzati durante il processo di installazione. Si consiglia di chiudere tutti i componenti di Visual Studio 2010 prima di installare l'aggiornamento rapido.

Informazioni sulla sostituzione dell'hotfix

Questo hotfix non sostituisce eventuali altri hotfix.

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 nel tempo universale coordinato (UTC). Quando si visualizzano le informazioni sul file, viene convertita in ora locale. Per calcolare la differenza tra ora UTC e ora locale, utilizzare il Fuso orario Nella scheda il Data e ora elemento nel Pannello di controllo.
Per tutte le versioni supportate di Visual Studio 2010
Riduci questa tabellaEspandi questa tabella
Nome del fileVersione del fileDimensione del fileDataPiattaforma
C2. dll16.0.40219.4042,608,19213-Dic-2012x86
C2. dll16.0.40219.4042,494,52813-Dic-2012x86
C2. dll16.0.40219.4042,593,34413-Dic-2012x86
C2. dll16.0.40219.4042,962,49613-Dic-2012x64

Status

Microsoft ha confermato che questo problema si verifica con i prodotti Microsoft elencati Nella sezione "Si applica a".

Informazioni

Per ulteriori informazioni sulle opzioni di Visual C++ /O , visitare il seguente sito Web MSDN:
Informazioni generali sulle opzioni /O
Per riprodurre il problema, eseguire un'applicazione C++ che utilizza il codice riportato di seguito:
#include "stdafx.h"
 
int main()
{
        for( int i = -1; i <= 3; i++ ) 
        {
               for( int j = -1; j <= 3; j++ ) 
               {
                      if (i >= 0 && i < 3 && j >= 0 && j < 3)
                      {
                            printf("%d\n", i * 3 + j);
                      }
               }
        }
        return 0;
}
Dopo l'esecuzione dell'applicazione, è possibile che venga visualizzato il seguente risultato:
-3
-2
-1
0
1
2
3
4
5
6
7
8
Tuttavia, si prevedono i seguenti risultati in questa situazione:
0
1
2
3
4
5
6
7
8

Proprietà

Identificativo articolo: 2719783 - Ultima modifica: giovedì 10 gennaio 2013 - Revisione: 4.0
Chiavi: 
kbqfe kbfix kbexpertiseadvanced kbhotfixserver kbsurveynew kbmt KB2719783 KbMtit
Traduzione automatica articoli
Il presente articolo è stato tradotto tramite il software di traduzione automatica di Microsoft e non da una persona. Microsoft offre sia articoli tradotti da persone fisiche sia articoli tradotti automaticamente da un software, in modo da rendere disponibili tutti gli articoli presenti nella nostra Knowledge Base nella lingua madre dell?utente. Tuttavia, un articolo tradotto in modo automatico non è sempre perfetto. Potrebbe contenere errori di sintassi, di grammatica o di utilizzo dei vocaboli, più o meno allo stesso modo di come una persona straniera potrebbe commettere degli errori parlando una lingua che non è la sua. Microsoft non è responsabile di alcuna imprecisione, errore o danno cagionato da qualsiasi traduzione non corretta dei contenuti o dell?utilizzo degli stessi fatto dai propri clienti. Microsoft, inoltre, aggiorna frequentemente il software di traduzione automatica.
Clicca qui per visualizzare la versione originale in inglese dell?articolo: 2719783
LE INFORMAZIONI CONTENUTE NELLA MICROSOFT KNOWLEDGE BASE SONO FORNITE SENZA GARANZIA DI ALCUN TIPO, IMPLICITA OD ESPLICITA, COMPRESA QUELLA RIGUARDO ALLA COMMERCIALIZZAZIONE E/O COMPATIBILITA' IN IMPIEGHI PARTICOLARI. L'UTENTE SI ASSUME L'INTERA RESPONSABILITA' PER L'UTILIZZO DI QUESTE INFORMAZIONI. IN NESSUN CASO MICROSOFT CORPORATION E I SUOI FORNITORI SI RENDONO RESPONSABILI PER DANNI DIRETTI, INDIRETTI O ACCIDENTALI CHE POSSANO PROVOCARE PERDITA DI DENARO O DI DATI, ANCHE SE MICROSOFT O I SUOI FORNITORI FOSSERO STATI AVVISATI. IL DOCUMENTO PUO' ESSERE COPIATO E DISTRIBUITO ALLE SEGUENTI CONDIZIONI: 1) IL TESTO DEVE ESSERE COPIATO INTEGRALMENTE E TUTTE LE PAGINE DEVONO ESSERE INCLUSE. 2) I PROGRAMMI SE PRESENTI, DEVONO ESSERE COPIATI SENZA MODIFICHE, 3) IL DOCUMENTO DEVE ESSERE DISTRIBUITO INTERAMENTE IN OGNI SUA PARTE. 4) IL DOCUMENTO NON PUO' ESSERE DISTRIBUITO A SCOPO DI LUCRO.

Invia suggerimenti

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com