Update: Wenn COleDateTime::operator=(time_t) bricht Jahr vergangene 1999

Wichtig: Dieser Artikel wurde maschinell und nicht von einem Menschen übersetzt. Die Microsoft Knowledge Base ist sehr umfangreich und ihre Inhalte werden ständig ergänzt beziehungsweise überarbeitet. Um Ihnen dennoch alle Inhalte auf Deutsch anbieten zu können, werden viele Artikel nicht von Menschen, sondern von Übersetzungsprogrammen übersetzt, die kontinuierlich optimiert werden. Doch noch sind maschinell übersetzte Texte in der Regel nicht perfekt, insbesondere hinsichtlich Grammatik und des Einsatzes von Fremdwörtern sowie Fachbegriffen. Microsoft übernimmt keine Gewähr für die sprachliche Qualität oder die technische Richtigkeit der Übersetzungen und ist nicht für Probleme haftbar, die direkt oder indirekt durch Übersetzungsfehler oder die Verwendung der übersetzten Inhalte durch Kunden entstehen könnten.

Den englischen Originalartikel können Sie über folgenden Link abrufen: 225140
Dieser Artikel wurde archiviert. Er wird im vorliegenden Zustand bereitgestellt und nicht mehr aktualisiert.
Problembeschreibung
Die Funktion COleDateTime::operator =(const time_t& timeSrc) behandelt Datum später als 31 Dezember 1999 nicht ordnungsgemäß. 02/05/2000 Kann z. B. als 02/05/100 dargestellt werden.

Dieser Fehler kann in Windows 95/98 Diagnose Applet Msinfo32.exe eingesehen werden. Wenn das Datum auf den Computer später als 31 Dezember 1999, eingestellt ist, werden die Datumsangaben in der Msinfo32 generierte Bericht nicht korrekt angezeigt.
Ursache
COleDateTime::operator = Aufrufe eine Hilfsfunktion in MFC mit dem Namen OleDateFromTm. Diese Funktion wird verwendet, Konvertieren von der CRT-Zeit-Struktur, der das Jahr relativ zum 1900 (z. B. 99 = 1999, 100 = 2000) zum erwarteten OLE Datum/Uhrzeit-Konvertierungsfunktionen gespeichert. OleDateFromTm wird angenommen, dass, die jedes Jahr an es übergeben wird, die kleiner als 100 ist eine abgekürzte Datum relativ zum 1900 und 1900 hinzugefügt. Wenn die Jahreszahl größer als 99 (100 = 2000) nichts hinzugefügt wird ist. Daher 100 (für 2000), OleDateFromTm übergeben wird, nichts hinzugefügt wird und das Datum wird wieder als 100.
Status
Microsoft hat bestätigt, dass es sich hierbei um ein Problem bei den in diesem Artikel Microsoft-Produkten handelt.

Dieser Bug wurde in gepatchte Versionen der Mfc40.dll und Mfc40u.dll behoben. Die Versionsnummer ist 4.1.6140. Diese DLLs sind enthalten, als Teil der Jahr-2000 für Windows 95 und Windows 98 aktualisiert. Windows NT 4.0 steht ein Hotfix zur Verfügung.

Weitere Informationen finden Sie die Artikel der Microsoft Knowledge Base:
218877Mfc40.dll führt Programme zu falschen Datum nach 01/01/2000 anzeigen
Dieser Bug wurde in Visual Studio 6.0 Service Pack 3 behoben. Weitere Informationen zu Visual Studio Servicepacks finden Sie in der Microsoft Knowledge Base:
194022INFO: Visual Studio 6.0 Service Packs, was, wo, warum
194295So wird 's gemacht: Ermitteln Sie, ob Visual Studio 6.0 Service Packs installiert sind
Weitere Informationen
Nur Anwendungen, die mit Visual C++ 4.0 oder 4.1 erstellt wurden, erfordern diese aktualisierte DLL. Um zu ermitteln, ob die ausführbare Datei mit der Mfc40.dll verknüpft ist, gehen Sie folgendermaßen vor:
  1. Starten Sie Windows_explorer.
  2. Klicken Sie mit der rechten Maustaste auf die EXE oder DLL.
  3. Aktivieren Sie direkt anzeigen .
  4. Einen Bildlauf nach unten zu der Tabelle importieren. MFC-DLL verknüpft sollte aufgeführt hier (d. h., Mfc40.dll).
Jahr 2000 MFC COleDateTime Time_t OleDateFromTm

Warnung: Dieser Artikel wurde automatisch übersetzt.

Eigenschaften

Artikelnummer: 225140 – Letzte Überarbeitung: 02/01/2014 00:17:06 – Revision: 2.1

Microsoft Foundation Class Library 4.2

  • kbnosurvey kbarchive kbmt kbbug kbfaq kbfix kbnoupdate kbvs600sp3fix KB225140 KbMtde
Feedback