CORRECÇÃO: Erros ocorrem depois de lançada uma excepção ou uma função "_declspec(noreturn)" é executada quando é executado um C + + / CLI aplicação criada com uma opção do compilador de optimização activada no Visual Studio 2005 SP1

IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine translation ou MT), não tendo sido portanto revisto ou traduzido por humanos. A Microsoft tem artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais. O objectivo é simples: oferecer em Português a totalidade dos artigos existentes na base de dados do suporte. Sabemos no entanto que a tradução automática não é sempre perfeita. Esta pode conter erros de vocabulário, sintaxe ou gramática… erros semelhantes aos que um estrangeiro realiza ao falar em Português. A Microsoft não é responsável por incoerências, erros ou estragos realizados na sequência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza actualizações frequentes ao software de tradução automática (MT). Obrigado.

Clique aqui para ver a versão em Inglês deste artigo: 2435944
Sintomas
Considere o seguinte cenário:
  • Criar um C + + / CLI projecto utilizando o Microsoft Visual Studio 2005 Service Pack 1 (SP1).
  • O código de origem do projecto executa uma instrução de lançamento ou um_declspec(noreturn)função. O código que é executado após a instrução ou o_declspec(noreturn)função é executada com frequência.
  • Criar o projecto com uma opção do compilador de optimização activada. Por exemplo, activar oMaximizar a velocidade (/ O2)opção do compilador de optimização. Uma aplicação é gerada depois de criar o projecto.
  • É accionada uma excepção ou o_declspec(noreturn)função é executada quando executar a aplicação.
Neste cenário, um processo de destruição de um objecto de pilha não geridos no código fonte é chamado incorrectamente. Além disso, pode ocorrer uma excepção de violação de acesso ou outro comportamento inesperado pode ocorrer na aplicação.

Causa
O problema ocorre porque o código de Command Language Runtime (CLR) que tenta desenrolamento a pilha é executado numa estado de tratamento de excepções incorrecta.
Resolução

Informações sobre correcções


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. Esta correcção poderá ser submetida a testes adicionais. Por conseguinte, se não estiver a ser gravemente afectado por este problema, recomendamos que aguarde pela próxima actualização de software que contenha esta correcção.

Para resolver este problema imediatamente, 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 custos de suporte, visite o seguinte Web site da Microsoft:NotaEm 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 normais do suporte serão aplicados a perguntas de suporte adicionais e a problemas que não se enquadrem na atualização específica em questão.

NotaTambém é possível transferir esta correcção a partir do seguinte Web site da Microsoft:


Pré-requisitos

Para aplicar esta correcção, tem de ter o Microsoft Visual Studio 2005 Service Pack 1 instalado.

Requisito de reinício

Tem de reiniciar o computador depois de aplicar a correcção se estiver a executar qualquer instância do Visual Studio. Recomendamos que feche aplicações do Visual Studio antes de aplicar a correcção.

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

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

Informações sobre o ficheiro

A versão inglesa desta correcção tem os atributos de ficheiro (ou atributos de arquivo posteriores) listados na seguinte tabela. As datas e horas destes ficheiros são listadas no tempo universal coordenado (UTC). Quando visualiza as informações do ficheiro, é convertida para a hora local. Para determinar a diferença entre a UTC e a hora local, utilize aFuso horárioseparador naData e horaitem no painel de controlo.
Nome de ficheiroVersão do ficheiroTamanho do ficheiroDataTempoPlataforma
C2.dll14.0.50727.55872,273,28016-Nov-201022: 41x86
C2.dll14.0.50727.55877,196,16017-Nov-201004: 08IA-64
C2.dll14.0.50727.55872,490,36817-Nov-201004: 09x86
C2.dll14.0.50727.55873,600,38417-Nov-201004: 13x64
C2.dll14.0.50727.55872,203,64817-Nov-201004: 13x86
Pgodb80.dll8.0.50727.55876553616-Nov-201022: 39x86
Pgodb80.dll8.0.50727.5587130,56017-Nov-201004: 09IA-64
Pgodb80.dll8.0.50727.558770,65617-Nov-201004: 13x64

Ponto Da Situação
A Microsoft confirmou que este é um problema dos produtos da Microsoft listados na secção "Aplica-se a".
Como contornar
Para contornar este problema, desactive a opção de optimização quando criar o projecto.
Referências
Para mais informações sobre o_declspec(noreturn)funcionar, visite o seguinte Web site da MSDN (Microsoft Developer Network):

Aviso: Este artigo foi traduzido automaticamente

Propriedades

ID do Artigo: 2435944 - Última Revisão: 12/17/2010 09:25:00 - Revisão: 1.0

Microsoft Visual Studio 2005 Service Pack 1

  • kbqfe kbhotfixserver kbfix atdownload kbexpertiseadvanced kbsurveynew kbmt KB2435944 KbMtpt
Comentários