Incorrecto inicialização valor global se utilizar pré-compilada cabeçalho

Traduções de Artigos Traduções de Artigos
Artigo: 318139 - Ver produtos para os quais este artigo se aplica.
Este artigo foi arquivado. Este artigo é oferecido "tal como está" e deixará de ser actualizado.
Expandir tudo | Reduzir tudo

Nesta página

Sintomas

Se utilizar um cabeçalho de pré-compilado (tal como /Yu, /Yx ou /Yc), valores globais não podem ser inicializados correctamente.

Resolução

Agora é disponibilizada pela Microsoft uma correcção suportada, mas 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á submetida a testes adicionais. Por conseguinte, se não estiver a ser gravemente afectado por este problema, recomendamos que aguarde pelo próximo service pack do Microsoft Visual Studio .NET 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 de números de telefone do suporte técnico da Microsoft e informações sobre os custos de suporte, visite o seguinte Web site da Microsoft:
http://support.microsoft.com/contactus/?ws=support
Nota : em 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 de suporte normais se aplicarão perguntas de suporte adicionais e problemas que não se enquadrem na atualização específica em questão.

A versão inglesa desta correcção deverá ter os seguintes atributos de ficheiro 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
				

Ponto Da Situação

A Microsoft confirmou que este é um problema nos produtos da Microsoft listados no início deste artigo.

Mais Informação

Passos para reproduzir o comportamento

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

Propriedades

Artigo: 318139 - Última revisão: 8 de fevereiro de 2014 - Revisão: 1.3
A informação contida neste artigo aplica-se a:
  • Microsoft Visual C++ .NET 2002 Standard Edition
Palavras-chave: 
kbnosurvey kbarchive kbmt kbhotfixserver kbqfe kbbug kbcompiler kbfix kbqfe KB318139 KbMtpt
Tradução automática
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: 318139

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com