Introdução
O hotfix descrito neste artigo corrige os seguintes problemas no Microsoft Visual Studio 2010.
Problema 1
Você enfrentar um comportamento inesperado quando você executa um aplicativo que tenha loops no código-fonte. Esse problema ocorre se o código-fonte é compilado com a otimização global (/ Og) habilitado.
Problema 2
Considere o seguinte cenário:
-
Você tem um projeto do Visual C++ que inclui o arquivo Atlcomcli.h.
-
Você especifica a opção de compilador /J para definir o_CHAR_UNSIGNEDmacro no projeto.
-
Compilar o projeto.
Nesse cenário, você recebe uma das seguintes mensagens de erro:
-
Erro C2338: CVarTypeInfo < char > não pode ser compilado com o sinalizador /J ou _CHAR_UNSIGNED ativado
-
Erro C2338: CVarTypeInfo < char * > não pode ser compilado com o sinalizador /J ou _CHAR_UNSIGNED ativado
Problema 3
Uma violação de acesso ocorre quando você executa um aplicativo do Visual C++ foi criado para uma versão baseada em x86 do Windows. Esse problema ocorre quando o aplicativo tem uma árvore de expressão que tem dois argumentos de entrada de tipo de matriz.
Causa
Causa do problema 1
Esse problema ocorre porque uma otimização incorretos de loop é executada. Isso faz com que a geração de código incorreto.
Causa do problema 2
Esse problema ocorre porque asserções estáticas no arquivo Atlcomcli.h estão definidas incorretamente para a opção /J e a macro CHAR_UNSIGNED.
Causa do problema 3
Esse problema ocorre porque os argumentos nas instruções de envio são misturados. Portanto, argumentos incorretos são passados para as instruções de envio.
Mais informações
Informações sobre o hotfix
Um hotfix suportado está disponível agora na Microsoft. No entanto, destina-se a corrigir somente o problema descrito neste artigo. Aplique-o somente aos sistemas que apresentarem esse problema específico. Esta correção poderá ser submetida a testes adicionais. Portanto, se esse problema não o prejudicar, recomendamos que você aguarde o próximo 2010 de Visual Studio que contém esse hotfix.
Para resolver esse problema imediatamente, contate o Atendimento Microsoft para obter o hotfix. Para obter uma lista completa dos números de telefone do Atendimento Microsoft e informações sobre custos de suporte, visite o seguinte site da Microsoft:
http://support.microsoft.com/contactus/?ws=supportObservação: em alguns casos, as taxas cobradas para chamadas de suporte podem ser canceladas caso um profissional de Suporte da Microsoft determine que uma atualização específica resolverá o problema. Os custos normais de suporte serão aplicados para questões de suporte adicionais e problemas que não se qualificam à atualização específica em questão.
Pré-requisitos:
Você deve ter o Microsoft Visual Studio 2010 instalado para aplicar esse hotfix.
Requisitos de reinicialização:
Você não precisa reiniciar o computador após aplicar o hotfix se nenhum arquivo afetado está sendo usado.
Informações de substituição do hotfix:
Esse hotfix não substitui outros hotfixes.
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 na Hora Universal Coordenada (UTC). Quando você exibe as informações do arquivo, ele é convertido para a hora local. Para encontrar a diferença entre o UTC e a hora local, use a
Fuso horário
Guia de
Data e hora
item no painel de controle.
Nome do Arquivo |
Versão do arquivo |
Tamanho do arquivo |
Data |
Hora |
Plataforma |
---|---|---|---|---|---|
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 |
Solução alternativa
Solução alternativa para o problema 1
Para contornar esse problema, desative a otimização global. Para obter mais informações sobre como desativar a otimização global, clique no número abaixo para ler o artigo na Base de Conhecimento da Microsoft:
Corrigir 216181 : gerado com /Og otimização de código incorreto
Solução alternativa para o problema 2
Para contornar esse problema, use a seguinte diretiva pragma para incluir o arquivo 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")