CORRECÇÃO: COleDateTime::operator=(time_t) quebras se ano além de 1999

Traduções deste artigo Traduções deste artigo
ID do artigo: 225140 - Exibir os produtos aos quais esse artigo se aplica.
Este artigo foi arquivado. É oferecido "como está" e não será mais atualizado.
Expandir tudo | Recolher tudo

Sintomas

A função COleDateTime::operator =(const time_t& timeSrc) não manipula corretamente as datas posterior a 31 de dezembro de 1999. Por exemplo, 05/02/2000 pode ser representada como 02/05/100.

Esse bug pode ser visto no miniaplicativo de diagnósticos do Windows 95/Windows 98 Msinfo32.exe. Se a data no computador é definida posterior a 31 de dezembro de 1999, as datas no relatório gerado pelo Msinfo32 não serão exibidas corretamente.

Causa

COleDateTime::operator = chamadas de uma função auxiliar no MFC chamado OleDateFromTm. Esta função é usada para converter da estrutura de tempo de CRT, que armazena o ano em relação a 1900 (por exemplo, 99 = 1999, 2000 = 100) para o que esperam as funções de conversão de data/hora OLE. OleDateFromTm pressupõe que que qualquer ano passado para ele é menor do que 100 é uma data abreviada em relação a 1900 e adiciona 1900 a ele. Se o ano for maior que 99 (ou seja, 100 = 2000), que nada é adicionado. Portanto, quando 100 é passado (para 2000) para OleDateFromTm, nada é adicionado a ele e a data voltar como 100.

Situação

A Microsoft confirmou que esse é um problema nos produtos da Microsoft listados no começo deste artigo.

Esse bug foi corrigido no patch versões do Mfc40.dll e Mfc40u.dll. Número de versão é 4.1.6140. Essas DLLs estão incluídas como parte do Y2K atualizações para Windows 95 e Windows 98. Para Windows NT 4.0, um hot fix está disponível.

Para obter informações adicionais, clique no número abaixo para ler o artigo na Base de dados de Conhecimento da Microsoft:
218877Mfc40.dll causa programas para exibir data incorreta após 01/01/2000
Esse bug foi corrigido no Visual Studio 6.0 Service Pack 3. Para obter informações adicionais sobre service packs do Visual Studio, clique nos números abaixo para ler os artigos na Base de dados de Conhecimento da Microsoft:
194022INFO: Visual Studio 6.0 Service Packs, What, WHERE, por que
194295COMO: Verificar se o Visual Studio 6.0 Service Packs estão instalados

Mais Informações

Somente aplicativos que são criados com Visual C++ 4.0 ou 4.1 exigem essa DLL atualizado. Para determinar se o executável está vinculado para o Mfc40.dll, execute essas etapas:
  1. Inicie o Windows Explorer.
  2. Clique com o botão direito do mouse no EXE ou DLL.
  3. Selecione Visualização rápida .
  4. Role para baixo para a tabela de importação. A DLL do MFC vinculada em deve ser listada aqui (ou seja, Mfc40.dll).

Propriedades

ID do artigo: 225140 - Última revisão: domingo, 20 de outubro de 2013 - Revisão: 2.1
A informação contida neste artigo aplica-se a:
  • Microsoft Foundation Class Library 4.2 nas seguintes plataformas
    • Microsoft Visual C++ 4.0 Standard Edition
    • Microsoft Visual C++ 4.1 Subscription
Palavras-chave: 
kbnosurvey kbarchive kbmt kbbug kbfaq kbfix kbnoupdate kbvs600sp3fix KB225140 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 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: 225140

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