Sintomas
Considere o seguinte cenário:
-
Desenvolver uma aplicação do Microsoft Visual C++ 2010 que utiliza os membros do campo de bits numa estrutura no Microsoft Visual Studio 2010.
-
Activar uma opção do compilador de optimização para a aplicação e, em seguida, criar a aplicação.
-
Execute a aplicação.
Neste cenário, o código incorrecto do computador podem ser gerado para determinadas operações de membros de campo de bits na estrutura.
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 Microsoft Visual Studio 2010 SP1 instalado.
Requisito de reinício
Não é necessário reiniciar o computador depois de instalar a correcção se os ficheiros afectados não estão a ser utilizados no momento da instalação. Recomendamos que feche todos os componentes relacionados com o Visual Studio 2010 antes de instalar a correcção.
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.
Nome do ficheiro |
Versão do ficheiro |
Tamanho do ficheiro |
Data |
Hora |
Plataforma |
Caminho |
---|---|---|---|---|---|---|
C2.dll |
16.0.40219.449 |
2,606,728 |
18-Apr-2013 |
18:09 |
x86 |
Microsoft Visual Studio 10.0\VC\bin |
C2.dll |
16.0.40219.449 |
2,493,576 |
19-Apr-2013 |
21:19 |
x86 |
Microsoft Visual Studio 10.0\VC\bin\x86_amd64 |
C2.dll |
16.0.40219.449 |
2,593,928 |
19-Apr-2013 |
21:19 |
x86 |
Microsoft Visual Studio 10.0\VC\bin\x86_ia64 |
C2.dll |
16.0.40219.449 |
2,960,008 |
19-Apr-2013 |
21:19 |
x64 |
Microsoft Visual Studio 10.0\VC\bin\amd64 |
Estado
A Microsoft confirmou que este é um problema nos produtos da Microsoft listados na secção "Aplica-se a".
Solução alternativa
Para contornar este problema, utilize um dos seguintes métodos:
-
Utilize o /a opção do compiladorOd optimização para desactivar a optimização.
-
Utilize o cabeçalho pragma Optimizar para activar ou desactivar a optimização de forma função pela função.
-
Actualizar para o Microsoft Visual Studio 2012.
Referências
Para mais informações sobre o cabeçalho pragma Optimizar , vá para o seguinte Web site da MSDN:
Informações gerais sobre o cabeçalho pragma optimizarPara mais informações sobre opções de optimização de /O , vá para o seguinte Web site da MSDN: