Sintomas
Considere o seguinte cenário:
-
Utilizar o Microsoft Visual Studio 2010 Service Pack 1 (SP1) para desenvolver uma aplicação de Visual C++.
-
O código de origem da aplicação utiliza os operadores de bit a bit shift (<< ou >>).
-
Configurar a aplicação a plataforma de destino o x86.
-
Compilar a aplicação utilizando a opção de optimização de /Ox (optimização completo) ou /O2 (velocidade Maximizar).
-
Execute a aplicação.
Neste cenário, os operadores de bit a bit shift poderão devolver valores incorrectos.
Nota Este problema não ocorre no Microsoft Visual Studio 2012.
Resolução
Informações sobre correção
Agora tem uma correcção suportada disponível na Microsoft. Contudo, destina-se apenas a corrigir o problema descrito neste artigo. Aplique-a apenas em sistemas que tenham este problema específico.
Para resolver este problema, contacte o suporte técnico da Microsoft para obter a correcção. Para obter uma lista completa dos números de telefone do suporte técnico da Microsoft e informações sobre os custos de suporte, visite o seguinte Web site da Microsoft:
http://support.microsoft.com/contactus/?ws=supportNota Em casos especiais, os custos normalmente inerentes às chamadas de suporte poderão ser anulados se um técnico de suporte da Microsoft determinar que uma actualização específica resolverá o problema. Os custos de normais do suporte serão aplicados a questões de suporte adicionais e problemas que não se enquadrem na atualização específica em questão.
Pré-requisitos
Para aplicar esta correcção, tem de ter o Visual Studio 2010 Service Pack 1 (SP1) instalado.
Requisito de reinício
Não é necessário reiniciar o computador depois de aplicar esta correcção se os ficheiros afectados não estão a ser utilizados. Recomendamos que feche componentes relacionados com o Visual Studio 2010 antes de aplicar esta correcção.
Informações de ficheiro
A versão global desta correcção tem os atributos de ficheiro (ou atributos de ficheiro posteriores) listados na seguinte tabela. As datas e horas destes ficheiros são listadas na hora Universal Coordenada (UTC). Quando visualiza as informações do ficheiro, é convertido para a hora local. Para determinar a diferença entre a UTC e a hora local, utilize o separador Fuso horário no item data e hora no painel de controlo.