CORREÇÃO: Uma violação de acesso ocorre quando você executa um aplicativo baseado no Visual C++ 2010 para plataformas baseadas em x64 se você usar a opção de compilador "/O2" para criar o projeto

Aplica-se A
Visual Studio 2010

Sintomas

Tenha em conta o seguinte cenário:

  • Você tem um projeto Visual C++ 2010. O código-fonte do projeto tem uma estrutura ou classe que excede 64 bytes.
  • Você cria o projeto para uma plataforma baseada em x64 e usa a opção de compilador /O2.
  • Você executa o aplicativo.

Nesse cenário, ocorre uma violação de acesso e o aplicativo falha.

Causa

Esse problema ocorre porque o compilador baseado em x64 do Visual Studio 2010 otimiza o código ajustando o alinhamento de alocação de dados de 64 bytes para 16 bytes. Portanto, ocorre um problema de memória para os objetos que excedem 64 bytes.

Resolução

Informações sobre o hotfix

Um hotfix suportado está disponível da Microsoft. No entanto, esse hotfix destina-se a corrigir apenas o problema descrito neste artigo. Aplique esse hotfix somente para sistemas que estão enfrentando esse problema específico. Esse hotfix pode receber testes adicionais. Portanto, se você não tiver sido gravemente afetado por esse problema, recomendamos que você aguarde a próxima atualização de software que contém esse hotfix.

 Para transferir esta correcção a partir da Galeria de Código MSDN, visite o seguinte site da Microsoft:

http://code.msdn.microsoft.com/KB2280741
Observação A Galeria de Código do MSDN exibe os idiomas para os quais o hotfix está disponível. Se não vir o seu idioma listado, é porque a página de recursos da Galeria de Código não está disponível para esse idioma.

Observação Se ocorrerem problemas adicionais ou se for necessária alguma solução de problemas, talvez seja necessário criar uma solicitação de serviço separada. Os custos normais de suporte serão aplicados a questões de suporte adicionais e problemas que não se qualificam para esse hotfix específico. Para obter uma lista completa dos números de telefone do Suporte e Atendimento ao Cliente da Microsoft ou para criar um pedido de serviço separado, visite o seguinte site da Microsoft:

http://support.microsoft.com/contactus/?ws=support Você também pode baixar esse hotfix visitando o seguinte site da Microsoft:

https://connect.microsoft.com/VisualStudio/Downloads/DownloadDetails.aspx?DownloadID=31433

Pré-requisitos

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

Requisito de reinício

Não é necessário reiniciar o computador depois de aplicar o hotfix.

Informações sobre substituição de correções

Esta correção não substitui quaisquer outras correções.

Informações de ficheiro

  A versão inglesa desta correção tem os atributos de ficheiro listados na tabela que se segue (ou atributos de ficheiro posteriores). As datas e horas desses arquivos estão listadas em Tempo Universal Coordenado (UTC). Quando visualizar as informações dos ficheiros, estas serão convertidas na hora local. Para determinar a diferença entre a hora UTC e a hora local, utilize o botão
Fuso Horário
  na caixa de diálogo
Data e Hora
  item em Painel de Controlo.

Nome de ficheiro Versão do ficheiro Tamanho do ficheiro Data Hora Plataforma
C2.dll 16.0.30319.345 2,510,144 01 De agosto de 2010 23:42 x86
C2.dll 16.0.30319.345 2,588,480 01 De agosto de 2010 23:42 x86
C2.dll 16.0.30319.345 2,630,976 01 De agosto de 2010 23:42 x86
C2.dll 16.0.30319.345 2,977,088 01 De agosto de 2010 23:42 x64
C2.dll 16.0.30319.345 7,351,616 01 De agosto de 2010 23:42 IA-64

Solução

Para contornar esse problema, não use a opção de compilador /O2 ao criar o projeto.

Estado

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