CORREÇÃO: "Se" a condição não funcionar corretamente quando você executa um aplicativo do Visual C++ que é desenvolvida no Visual Studio 2010 SP1

Traduções deste artigo Traduções deste artigo
ID do artigo: 2719783
Expandir tudo | Recolher tudo

Neste artigo

Sintomas

Considere o seguinte cenário:
  • Você usar o Microsoft Visual Studio 2010 Service Pack 1 (SP1) para desenvolver um aplicativo do Visual C++.
  • O código-fonte do aplicativo satisfizer as seguintes condições:
    • O código-fonte contém uma instrução IF em um loop aninhada.
    • A condição IF contém uma seleção que determina se uma variável de inteiro com sinal é negativa e também uma seleção que determina se a variável de inteiro é maior do que outro número.
    • O código que está fora a condição IF possui uma função linear que usa a variável assinada.
  • Compilar o aplicativo usando o Visual Studio 2010 ou o prompt de comando.

    Observação Você pode compilar o aplicativo enquanto uma opção de compilação estiver habilitada.
  • Execute o aplicativo.
Nesse cenário, a instrução IF não funciona corretamente.

Resolução

Informações sobre hotfix

Um hotfix com suporte agora está disponível na Microsoft. No entanto, destina-se apenas a corrigir o problema descrito neste artigo. Aplique-o somente aos sistemas que apresentarem esse problema específico. Esse hotfix pode receber testes adicionais. Portanto, se esse problema não o prejudicar, recomendamos que você aguarde a próxima atualização de software que contém esse hotfix.

Para resolver esse problema imediatamente, contate o Atendimento Microsoft para obter o hotfix. Para obter uma lista completa de números de telefone do Atendimento Microsoft e informações sobre os custos de suporte, visite o seguinte site da Microsoft:
http://support.microsoft.com/contactus/?WS=support
Observação Em alguns casos, taxas cobradas pelas ligações para o suporte podem ser canceladas se um profissional de suporte da Microsoft determinar que uma atualização específica resolverá o problema. Os custos normais de suporte serão aplicados a questões de suporte adicionais e problemas que não se qualificam à atualização específica em questão.

Pré-requisitos

Para aplicar esse hotfix, você deve ter o Visual Studio 2010 SP1 instalado.

Requisito de reinicialização

Não é necessário reiniciar o computador após instalar o hotfix se os arquivos afetados não estão sendo usados durante o processo de instalação. Recomendamos que você feche todos os componentes relacionados ao Visual Studio 2010 antes de instalar o hotfix.

Informações de substituição do hotfix

Esse hotfix não substitui nenhum outro hotfix.

Informações sobre o arquivo

A versão em inglês deste hotfix possui os atributos de arquivo (ou atributos de arquivo posteriores) listados na tabela a seguir. As datas e horas desses arquivos estão listadas em formato Tempo Universal Coordenado (UTC). Quando você exibe as informações do arquivo, ele é convertido em hora local. Para encontrar a diferença entre o UTC e a hora local, use o Fuso horário Guia de Data e hora item no painel de controle.
Para todas as versões do Visual Studio 2010
Recolher esta tabelaExpandir esta tabela
Nome do arquivoVersão do arquivoTamanho do arquivoDataPlataforma
C2.dll16.0.40219.4042,608,19213-Dez-2012x86
C2.dll16.0.40219.4042,494,52813-Dez-2012x86
C2.dll16.0.40219.4042,593,34413-Dez-2012x86
C2.dll16.0.40219.4042,962,49613-Dez-2012x64

Situação

Microsoft confirmou que este é um problema nos produtos Microsoft que estão listados na seção "Aplica-se a".

Mais Informações

Para obter mais informações sobre o Visual C++ /O opções, vá para o seguinte site da Web MSDN:
Informações gerais sobre /O opções
Para reproduzir esse problema, execute um aplicativo de C++ que usa o código a seguir:
#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;
}
Depois de executar o aplicativo, você recebe o seguinte resultado:
-3
-2
-1
0
1
2
3
4
5
6
7
8
No entanto, você espera que os seguintes resultados nessa situação:
0
1
2
3
4
5
6
7
8

Propriedades

ID do artigo: 2719783 - Última revisão: quinta-feira, 10 de janeiro de 2013 - Revisão: 4.0
Palavras-chave: 
kbqfe kbfix kbexpertiseadvanced kbhotfixserver kbsurveynew kbmt KB2719783 KbMtpt
Tradução automática
IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine Translation ou MT), não tendo sido portanto traduzido ou revisto por pessoas. A Microsoft possui artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais, com o objetivo de oferecer em português a totalidade dos artigos existentes na base de dados de suporte. No entanto, a tradução automática não é sempre perfeita, podendo conter erros de vocabulário, sintaxe ou gramática. A Microsoft não é responsável por incoerências, erros ou prejuízos ocorridos em decorrência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza atualizações freqüentes ao software de tradução automática (MT). Obrigado.
Clique aqui para ver a versão em Inglês deste artigo: 2719783

Submeter comentários

 

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