FIX: COleDateTime::operator=(time_t) Breaks 如果过去 1999 年

文章翻译 文章翻译
文章编号: 225140 - 查看本文应用于的产品
本文已归档。它按“原样”提供,并且不再更新。
展开全部 | 关闭全部

症状

函数 COleDateTime::operator =(const time_t& timeSrc) 不能正确处理日期晚于 1999 年十二月 31 日。例如对于 02/05/2000年可能会被表示为 02/05/100。

在 Windows 95/windows 98 诊断小程序 Msinfo32.exe 中,可以看到此错误。如果计算机上的日期晚于 1999 年十二月 31 日设置为 Msinfo32 生成的报告中的日期不正确显示。

原因

COleDateTime::operator = helper 函数在 MFC 中的名为 OleDateFromTm 的调用。将从 CRT 时间结构存储相对于 OLE 日期/时间转换函数期望 (例如对于 99 = 1999,100 = 2000) 1900 年转换为使用此函数。 OleDateFromTm 假定的传递给它的小于 100 的所有年份是相对于 1900年的缩写的日期,并向其添加 1900年。如果年份是大于 99 (也就是 100 = 2000) 执行任何操作将被添加。因此,100 (对于 2000) 传递给 OleDateFromTm 时, 向其添加的任何操作,日期恢复为 100。

状态

Microsoft 已经确认这是在本文开头列出的 Microsoft 产品中的错误。

此 bug 已修复的 Mfc40.dll 和 Mfc40u.dll 修补版本中。版本号为 4.1.6140。这些 dll 是包含该 Y2K 的部分更新的 Windows 95 和 Windows 98。对于 Windows NT 4.0 热修复程序是可用的。

有关更多的信息请单击下面文章编号,以查看 Microsoft 知识库中相应的文章:
218877Mfc40.dll 导致程序为 01/01/2000年之后显示错误日期
在 Visual Studio 6.0 Service Pack 3 中,此缺陷已得到纠正。有关 Visual Studio 的服务包的其他信息,请单击下面文章编号,以查看 Microsoft 知识库中相应的文章:
194022信息: Visual Studio 6.0 服务包、 内容,位置,为什么
194295HOWTO: 确定安装了 Visual Studio 6.0 服务包

更多信息

仅用 Visual c + + 4.0 或 4.1 生成的应用程序需要此更新后的 DLL。若要确定您的可执行文件是否链接到该 Mfc40.dll,请按照下列步骤操作:
  1. 启动 Windows 资源管理器。
  2. 用鼠标右键单击 EXE 或 DLL。
  3. 选择 快速查看
  4. 向下滚动到导入表。应该列出了 MFC DLL 在中链接在此处 (也就是 Mfc40.dll)。

属性

文章编号: 225140 - 最后修改: 2013年10月20日 - 修订: 2.1
这篇文章中的信息适用于:
  • Microsoft Foundation Class Library 4.2?当用于
    • Microsoft Visual C++ 4.0 标准版
    • Microsoft Visual C++ 4.1 Subscription
关键字:?
kbnosurvey kbarchive kbmt kbbug kbfaq kbfix kbnoupdate kbvs600sp3fix KB225140 KbMtzh
机器翻译
注意:这篇文章是由无人工介入的微软自动的机器翻译软件翻译完成。微软很高兴能同时提供给您由人工翻译的和由机器翻译的文章, 以使您能使用您的语言访问所有的知识库文章。然而由机器翻译的文章并不总是完美的。它可能存在词汇,语法或文法的问题,就像是一个外国人在说中文时总是可能犯这样的错误。虽然我们经常升级机器翻译软件以提高翻译质量,但是我们不保证机器翻译的正确度,也不对由于内容的误译或者客户对它的错误使用所引起的任何直接的, 或间接的可能的问题负责。
点击这里察看该文章的英文版: 225140
Microsoft和/或其各供应商对于为任何目的而在本服务器上发布的文件及有关图形所含信息的适用性,不作任何声明。 所有该等文件及有关图形均"依样"提供,而不带任何性质的保证。Microsoft和/或其各供应商特此声明,对所有与该等信息有关的保证和条件不负任何责任,该等保证和条件包括关于适销性、符合特定用途、所有权和非侵权的所有默示保证和条件。在任何情况下,在由于使用或运行本服务器上的信息所引起的或与该等使用或运行有关的诉讼中,Microsoft和/或其各供应商就因丧失使用、数据或利润所导致的任何特别的、间接的、衍生性的损害或任何因使用而丧失所导致的之损害、数据或利润不负任何责任。

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