Sintomas

Sintoma 1

Quando compila um projecto do Microsoft Visual C++ que tem uma declaração de enumeração num desfasamento específico, poderá receber um erro de C2371, C2556 ou C2511.

Causa 1

Este problema ocorre porque o compilador analisa incorrectamente o código de declaração de enumeração que ocorre no final de um ficheiro na memória intermédia [no deslocamento de ficheiro (4096 * n) -1].

Sintoma 2

Compilar um projecto de Visual C++ que tem uma chamada de função virtual que devolve um objecto e que liga o valor devolvido para uma referência. Tem também a opção /clr activada. Nesta situação, poderá receber uma excepção de violação de acesso em tempo de execução.

Causa 2

Este problema ocorre porque a extensão de duração implícita de um valor temporário que está ligado a uma referência constante não funciona caso se verifiquem as seguintes condições:

  • O projecto é compilado como /clr.

  • O valor temporário é o valor devolvido de uma chamada de função virtual ou uma chamada de função através de um apontador de função.

Resolução

Informações sobre correção

Existe uma correção suportada pela Microsoft. No entanto, esta correção destina-se apenas a corrigir o problema descrito neste artigo. Aplique esta correcção apenas em sistemas que tenham este problema específico.

Se a correção está disponível para transferência, existe uma secção de "Transferência de Correção Disponível" na parte superior deste artigo da Base de Dados de Conhecimento. Se esta secção não for apresentado, submeta um pedido de suporte e serviço de cliente Microsoft para obter a correcção.

Nota Caso ocorram problemas adicionais ou se for necessária a resolução de problemas, poderá ter de criar um pedido de assistência separado. Os custos de normais do suporte serão aplicados a questões de suporte adicional e problemas incluídos nesta correção específica. Para uma lista completa dos números de telefone de suporte e serviço de cliente da Microsoft ou para criar um pedido de assistência separado, visite o seguinte Web site da Microsoft:

http://support.microsoft.com/contactus/?ws=supportNota O formulário "Transferência de correcção disponível" apresenta os idiomas nos quais a correcção está disponível. Se não visualizar o seu idioma, é porque uma correcção não está disponível para esse idioma.

Pré-requisitos

Para aplicar esta correcção, tem de ter o Microsoft Visual Studio 2012 actualização 4 instalado.

Requisito de reinício

Poderá ter de 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 2012 antes de instalar a correcção.

Estado

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

Precisa de mais ajuda?

Aumente os seus conhecimentos
Explore as formações
Seja o primeiro a obter novas funcionalidades
Aderir ao Microsoft insiders

As informações foram úteis?

Quão satisfeito está com a qualidade do idioma?
O que afetou a sua experiência?

Obrigado pelo seu feedback!

×