Incorreto inicialização valor global se você usar cabeçalho pré-compilados

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 traduzido ou revisto por pessoas. A Microsoft possui artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais, com o objetivo de oferecer em português a totalidade dos artigos existentes na base de dados de suporte. No entanto, a tradução automática não é sempre perfeita, podendo conter erros de vocabulário, sintaxe ou gramática. A Microsoft não é responsável por incoerências, erros ou prejuízos ocorridos em decorrência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza atualizações freqüentes ao software de tradução automática (MT). Obrigado.

Clique aqui para ver a versão em Inglês deste artigo: 318139
Este artigo foi arquivado. É oferecido "como está" e não será mais atualizado.
Sintomas
Se você usar um cabeçalho pré-compilado (como /Yu, /Yx ou /Yc), valores globais não podem ser inicializadas corretamente.
Resolução
Um hotfix suportado agora está disponível da Microsoft, mas destina-se somente a corrigir o problema descrito neste artigo. Aplique-o somente nos sistemas que apresentarem esse problema específico. Esta correcção poderá submetida a testes adicionais. Portanto, se você não tiver sido gravemente afetado por esse problema, recomendamos que você aguarde o próximo service pack do Microsoft Visual Studio .NET que contém esse hotfix.

Para resolver esse problema imediatamente, contate o Atendimento Microsoft para obter a correção. Para obter uma lista completa dos números de telefone do Atendimento Microsoft do e informações sobre os custos de suporte, visite o seguinte site: Observação : em alguns casos, as taxas cobradas pelas ligações para chamadas de suporte podem ser canceladas se um profissional de suporte da Microsoft determinar que uma atualização específica resolverá o problema. Os custos de suporte normais serão aplicados a questões e problemas que não se qualificam à atualização específica em questão de suporte adicionais.

A versão em inglês dessa correção deve ter os seguintes atributos de arquivo ou posteriores:
   Date         Time    Version      Size       File name   Platform   -----------------------------------------------------------------   07-Mar-2002  15:57   13.00.9478   2,105,344  C1xx.dll    x86   07-Mar-2002  15:57   13.00.9478   1,757,184  C2.dll      x86				

Situação
A Microsoft confirmou que este é um problema nos produtos da Microsoft listados no começo deste artigo.
Mais Informações

Passos para reproduzir o problema

  1. Criar um novo arquivo chamado IncludeFile1.h, adicione o seguinte código para IncludeFile1.h e em seguida, salve o arquivo:
    const double gVal1 = 1234.567;const double gVal2 = gVal1;					
  2. Criar um novo arquivo chamado IncludeFile2.h, adicione o seguinte código para IncludeFile2.h e em seguida, salve o arquivo:
    const double gVal3 = 10 * gVal2;					
  3. Criar um novo arquivo chamado stdafx.h, adicione o seguinte código para stdafx.h e em seguida, salve o arquivo:
    #include "IncludeFile1.h"					
  4. Criar um novo arquivo chamado stdafx.cpp, adicione o seguinte código para stdafx.cpp e em seguida, salve o arquivo:
    #include "Stdafx.h"					
  5. Use a seguinte opção de compilador C++ em stdafx.cpp:
    / Yc"stdafx.h"
  6. Criar um novo arquivo chamado MyFile.cpp, adicione o seguinte código para MyFile.cpp e em seguida, salve o arquivo:
    #include "stdafx.h"#include "IncludeFile2.h"					
  7. Use a seguinte opção de compilador C++ em MyFile.cpp:
    / Yu"stdafx.h"
    Observe que //gVal3 incorretamente é inicializado para uso em MyFile.cpp.

Aviso: este artigo foi traduzido automaticamente

Propriedades

ID do Artigo: 318139 - Última Revisão: 10/24/2013 09:56:30 - Revisão: 1.3

Microsoft Visual C++ .NET 2002 Standard Edition

  • kbnosurvey kbarchive kbmt kbhotfixserver kbqfe kbbug kbcompiler kbfix kbqfe KB318139 KbMtpt
Comentários