CORRECTIF : COleDateTime::operator=(time_t) sauts si année après 1999

Traductions disponibles Traductions disponibles
Numéro d'article: 225140 - Voir les produits auxquels s'applique cet article
Cet article a été archivé. Il est proposé « en l'état » et ne sera plus mis à jour.
Agrandir tout | Réduire tout

Symptômes

Le =(const time_t& timeSrc) COleDateTime::operator fonction ne traite pas correctement les plus tard le 31 décembre 1999, les dates. Par exemple, 02/05/2000 peut être représenté en tant que 02/05/100.

Il est possible de visualiser ce bogue dans l'applet de tests de diagnostic de Windows 95/Windows 98 Msinfo32.exe. Si la date sur l'ordinateur est définie plus tard le 31 décembre, 1999, les dates dans le rapport généré de Msinfo32 ne s'affichent pas correctement.

Cause

COleDateTime::operator = appels une fonction d'assistance dans MFC nommé OleDateFromTm. Cette fonction est utilisée pour convertir à partir de la structure de temps CRT, qui stocke l'année par rapport à 1900 (par exemple, 99 = 1999, 2000 = 100) à ce que les fonctions de conversion de date/heure OLE attendent. OleDateFromTm suppose que n'importe quelle année qui lui est passée et qui est inférieur à 100 est une date abrégée par rapport à 1900 et ajoute 1900. Si l'année est supérieure à 99 (100 = 2000), que rien n'est ajouté. Par conséquent, lorsque 100 est passée à OleDateFromTm (pour 2000), rien n'est ajouté à celle-ci et la date est renvoyée que 100.

Statut

Microsoft a confirmé l'existence de ce bogue dans les produits Microsoft répertoriés au début de cet article.

Ce bogue a été résolu dans les versions corrigées des Mfc40.dll et Mfc40u.dll. Numéro de version est 4.1.6140. Ces DLL est inclus dans la partie de la compatibilité avec l'an 2000 met à jour pour Windows 95 et Windows 98. Pour Windows NT 4.0, un correctif logiciel est disponible.

Pour plus d'informations, cliquez sur le numéro ci-dessous pour afficher l'article correspondant dans la base de connaissances Microsoft :
218877Mfc40.dll entraîne programmes afficher une date incorrecte après 01/01/2000
Ce bogue a été corrigé dans Visual Studio 6.0 Service Pack 3. Pour plus d'informations sur les service packs Visual Studio, cliquez sur les numéros ci-dessous pour afficher les articles correspondants dans la base de connaissances Microsoft :
194022Information : Visual Studio 6.0 Service Packs, quoi, où, pourquoi
194295Comment faire : Tell que Visual Studio 6.0 Service Packs sont installés

Plus d'informations

Uniquement les applications qui sont générées avec Visual C++ 4.0 ou 4.1 nécessitent cette DLL mis à jour. Pour déterminer si votre fichier exécutable est liée à la Mfc40.dll, procédez comme suit :
  1. Démarrez l'Explorateur Windows.
  2. Cliquez avec le bouton droit sur le fichier EXE ou DLL.
  3. Sélectionnez affichage rapide.
  4. Faites défiler jusqu'à la table d'importation. La DLL MFC liée dans doit être répertoriée ici (c'est-à-dire, Mfc40.dll).

Propriétés

Numéro d'article: 225140 - Dernière mise à jour: lundi 3 février 2014 - Version: 2.1
Les informations contenues dans cet article s'appliquent au(x) produit(s) suivant(s):
  • Microsoft Foundation Class Library 4.2 sur le système suivant
    • Microsoft Visual C++ 4.0 Édition Standard
    • Microsoft Visual C++ 4.1 Subscription
Mots-clés : 
kbnosurvey kbarchive kbmt kbbug kbfaq kbfix kbnoupdate kbvs600sp3fix KB225140 KbMtfr
Traduction automatique
IMPORTANT : Cet article est issu du système de traduction automatique mis au point par Microsoft (http://support.microsoft.com/gp/mtdetails). Un certain nombre d?articles obtenus par traduction automatique sont en effet mis à votre disposition en complément des articles traduits en langue française par des traducteurs professionnels. Cela vous permet d?avoir accès, dans votre propre langue, à l?ensemble des articles de la base de connaissances rédigés originellement en langue anglaise. Les articles traduits automatiquement ne sont pas toujours parfaits et peuvent comporter des erreurs de vocabulaire, de syntaxe ou de grammaire (probablement semblables aux erreurs que ferait une personne étrangère s?exprimant dans votre langue !). Néanmoins, mis à part ces imperfections, ces articles devraient suffire à vous orienter et à vous aider à résoudre votre problème. Microsoft s?efforce aussi continuellement de faire évoluer son système de traduction automatique.
La version anglaise de cet article est la suivante: 225140
L'INFORMATION CONTENUE DANS CE DOCUMENT EST FOURNIE PAR MICROSOFT SANS GARANTIE D'AUCUNE SORTE, EXPLICITE OU IMPLICITE. L'UTILISATEUR ASSUME LE RISQUE DE L'UTILISATION DU CONTENU DE CE DOCUMENT. CE DOCUMENT NE PEUT ETRE REVENDU OU CEDE EN ECHANGE D'UN QUELCONQUE PROFIT.

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