INFO:Visual Studio 6.0 Service Pack 2 自述文件

本文已归档。它按“原样”提供,并且不再更新。
概要
Microsoft Visual Studio 6.0 Service Pack 2 自述文件包含以下几部分:
  • 概述。
  • 安装。
  • 关于修补程序的说明。
  • 获得更多信息。
更多信息
概述

Microsoft Visual Studio 6.0 Service Pack 2 解决了 Visual Studio 6.0 中某些运行时可再发行文件已知的二进制兼容性错误。并为 Visual C++ 开发人员提供了 Microsoft Visual C++ 运行时组件的所有源文件和调试版本。

在安装此 Service Pack 之前,请关闭所有的 Visual Studio 应用程序。只要您更新或更改了 Visual Studio 中的任何应用程序,就请安装此 Service Pack,以确保您具有最新的修补程序。

Microsoft Visual Studio 6.0 Service Pack 2 包含 Service Pack 1 中的内容。


安装

要安装该 Service Pack,请将光盘插入到计算机的 CD-ROM 驱动器中。在该 Service Pack 的根目录下,运行安装程序。安装程序将检测计算机操作系统的语言并运行以下安装程序之一:

\fra\setup(法语)\deu\setup(德语)\enu\setup(英语)\jpn\setup(日语)\esp\setup(西班牙语)\kor\setup(朝鲜语)\chs\setup(简体中文)\cht\setup(繁体中文)\ita\setup(意大利语)				
如果此列表中未列出您的语言设置,则将运行英文版的安装程序。


确定安装程序安装的文件

安装程序可能不会将此 Service Pack 中包含的所有文件都安装到计算机中。如果计算机上没有相应文件的副本,或者计算机上的文件比该 Service Pack 中的文件更新,那么安装程序将不会更新计算机上的文件。


更新以前修改过的文件

安装程序主要是通过检查文件资源中的版本信息来确定要替换的文件。但是有些文件(如文本文件和非二进制文件)并没有资源信息。在这些情况下,安装程序将通过时间戳来确定需要替换的文件。如果已经更改了任何 Visual Studio 组件文本文件或不具有版本信息的文件上的时间戳,则安装程序将不会替换这些文件。例如,源文件和头文件就可能已被更改。


根据文件版本确定产品的更新历史记录

要确定自产品最初发布以来做了哪些更新,则需要检查一个或多个文件的属性中的版本号。要确定产品的更新状态,请按照下列步骤操作:

  1. 查看下表,以确定要检查的文件。在某些情况下,可能需要检查多个文件才能完全确定产品的更新历史记录。
  2. 对于每个文件,请在 Windows 资源管理器中右键单击该文件,然后单击“属性”。
  3. 单击“版本”选项卡,然后将列出的版本与表中的版本进行比较。

下表列出了此 Visual Studio 6.0 Service Pack 中已更新的开发人员工具。还列出了应检查以确定其版本信息的密钥文件。
产品                   文件              发行版本        SP2 中的版本----------------------------------------------------------------Visual Studio 6.0   Oleaut32.dll    2.30.4261     2.40.4268                    Olepro32.dll    5.00.4261     5.00.4268                    Asycfilt.dll    2.30.4261     2.40.4268                    Stdole2.tlb     2.30.4261     2.40.4268Visual Basic 6.0    Msvbvm60.dll    6.00.8176     6.00.8268Visual C++ 6.0      Afxodlgs.h                    Arccore.cpp                    Ctlinplc.cpp                    Dlgcore.cpp                    Dlgprnt.cpp                    Libcmt.lib                    Libcmtd.lib                    Libcmtd.pdb                    Mfc42.dll       6.00.8168.0   6.00.8267.0                    Mfc42.lib                    Mfc42.map                    Mfc42.pdb                    Mfc42d.dll      6.00.8168.0   6.00.8267.0                    Mfc42d.lib                    Mfc42d.map                    Mfc42d.pdb                    Mfc42u.dll      6.00.8168.0   6.00.8267.0                    Mfc42u.lib                    Mfc42u.map                    Mfc42u.pdb                    Mfc42ud.dll     6.00.8168.0   6.00.8267.0                    Mfc42ud.lib                    Mfc42ud.map                    Mfc42ud.pdb                    Mfcd42d.dll     6.00.8168.0   6.00.8267.0                    Mfcd42d.lib                    Mfcd42d.map                    Mfcd42d.pdb                    Mfcd42ud.dll    6.00.8168.0   6.00.8267.0                    Mfcd42ud.lib                    Mfcd42ud.map                    Mfcd42ud.pdb                    Mfcn42d.dll     6.00.8168.0   6.00.8267.0                    Mfcn42d.lib                    Mfcn42d.map                    Mfcn42d.pdb                    Mfcn42ud.dll    6.00.8168.0   6.00.8267.0                    Mfcn42ud.lib                    Mfcn42ud.map                    Mfcn42ud.pdb                    Mfco42d.dll     6.00.8168.0   6.00.8267.0                    Mfco42d.lib                    Mfco42d.map                    Mfco42d.pdb                    Mfco42ud.dll    6.00.8168.0   6.00.8267.0                    Mfco42ud.lib                    Mfco42ud.map                    Mfco42ud.pdb                    Mfcs42.lib                    Mfcs42.pdb                    Mfcs42d.lib                    Mfcs42d.pdb                    Mfcs42u.lib                    Mfcs42u.pdb                    Mfcs42ud.lib                    Mfcs42ud.pdb                    Msvcrt.dll      6.00.8168.0    6.00.8337.0                    Msvcrt.lib                    Msvcrt.pdb                    Msvcrtd.dll     6.00.8168.0    6.00.8337.0                    Msvcrtd.lib                    Msvcrtd.pdb                    Nafxcw.lib                    Nafxcw.pdb                    Nafxcwd.lib                    Nafxcwd.pdb                    Oledlgs2.cpp                    Strftime.c                    Uafxcw.lib                    Uafxcw.pdb                    Uafxcwd.lib                    Uafxcwd.pdb                    Viewcore.cpp                    Winfrm.cpp                    Sbheap.c*                    Malloc.c*                    Free.c*                    Expand.c*                    Heapinit.c*                    Delete.cpp*                    New.cpp*                    Realloc.c*                    Calloc.c*                    Heapmin.c*                    Msize.c*                    Heapchk.c*                    Dbgheap.c*                    Winheap.h*Visual J++ 6.0      Msjavx86.exe     5.00.2922 5.00.3161                    Classd.exe       5.00.2922 5.00.3161                    Classr.exe       5.00.2922      5.00.3161                    Msvj98.dll       6.00.8169 6.01.8349                    Msvj98ui.dll     6.00.8167 6.01.8349                    Jvc.exe          6.00.8167 6.00.8343                    Applet on HTML.vjp                    COM Control.vjp                    Console Application.vjp				

卸载 Visual Studio 6.0 Service Pack

该 Service Pack 不能独立于 Visual Studio 进行卸载。要卸载对 Visual Studio 6.0 工具(如 Visual C++)的 Service Pack 更新,则必须卸载这个工具本身。Service Pack 更新将随之一同卸载。然后,再重新安装不含更新的工具。
关于修补程序的说明


已修复的 Visual C++ 问题

Service Pack 2 和 Service Pack 1 均修复了以下 Visual C++ 问题。

Microsoft 基础类 (MFC) 问题:

193099 FIX:在 Visual C++ 中创建对话框时 CDialog::Create() 函数返回不正确的值
193272 FIX:在 Visual C++ 6.0 中 MFC 不调用 CPrintDialog::OnInitDialog 函数
193102 FIX:MFC SDI/MDI 应用程序中 Appui1.cpp 第 215 行的断言
192942 FIX:在 Visual C++ 中 MFC ActiveX 控件容器进入无限递归状态时发生堆栈溢出
193100 FIX:在 Visual C++ 6.0 中对 Unicode Cstring 进行序列化处理时遇到访问冲突

CRT 问题:
193509 FIX:调用 strftime() 函数时发生异常

下列问题在 Service Pack 1 中没有得到解决但在 Service Pack 2 中得到了解决。

MSVCRT.DLL 已经过修改,不仅包括 Visual C++ 6.0 堆,还包括 Visual C++ 5.0 堆,以便提高兼容性。Visual C++ 6.0 应用程序将继续使用 Visual C++ 6.0 堆,而 Visual C++ 6.0 之前的应用程序将使用 Visual C++ 5.0 堆。

CRT 问题:

下面两篇知识库文章介绍的堆兼容性问题:

190536 FIX:在从 Visual C++ 6.0 安装了运行时库后收到错误消息“invalid page fault in module MSVCRT.DLL”(模块 MSVCRT.DLL 中存在无效页面错误)
194550 FIX:多次释放内存可能导致 Visual C++ 中出现应用程序错误

安装 Service Pack 2 时,多个 CRT 堆管理文件将被更新文件覆盖,这些更新文件包括 Visual C++ 6.0 堆和 Visual C++ 5.0 堆的代码如果需要重新生成 Visual C++ 6.0 静态库,则该静态库中将包括 Visual C++ 5.0 堆代码,但不使用该代码。本版本添加了 Visual C++ 5.0 堆,以便支持由于上面所列的问题引起的兼容性问题。如果不希望在重新生成的静态库中包括 Visual C++ 5.0 代码,应使用随 Visual C++ 6.0 一起发布的原始代码重新生成该库。

之前的 Visual C++ 6.0 文件列表中的小内存堆源文件带有星号标记。请注意,列出的源文件与堆 DLL 版本的 PDB 文件相匹配,并且与此 Service Pack 中未更新的静态 CRT 库没有对应关系。如果需要调试静态 CRT 库,则需要从产品 CD 中重新复制原始的 CRT 源文件。

已修复的 Visual Basic 问题

Service Pack 2 和 Service Pack 1 均修复了以下 Visual Basic 问题。
  • 如果应用程序使用八个以上进程内 COM DLL,则在已编译的 Visual Basic 代码中会出现运行时错误。
请注意,如果应用程序在安装时从网站上下载运行时组件,则此 Service Pack 将更改下列文件:

  • Msvbvm60.cabVbrun60.cabOleaut.cab

已修复的自动化问题

Service Pack 2 和 Service Pack 1 均修复了以下运行时问题:
  • 如果为外向 SAFEARRAY 参数传入未分配的数组,那么进行后期绑定方法调用时将失败。

已更新的 Visual J++ 文件

针对上述自动化问题,更新了 Microsoft 虚拟机文件。此更改既可应用于安装了 Visual J++ 的计算机,也可应用于 Visual J++ 可再发行文件夹,这样,分发的 Visual J++ 应用程序也将包含已更新的自动化文件。

要安装和使用核心 Microsoft VM 类文件的更新版本,请运行 Classd.exe 或 Classr.exe。

此 Service Pack 包含遵守联邦地方法院法官 Ronald H. Whyte 做出的初步裁决所必需的 Visual J++ 文件。Visual Studio 6.0 Service Pack 1 中不包含这些更改。有关更多信息,请参阅 Visual Studio 文件夹中的 \vj98\extwarn.txt,或访问 http://msdn.microsoft.com/visualj

获得更多信息

有关此 Service Pack 修复的 Visual Studio 问题的更进一步信息,请参见以下位置提供的 Microsoft 知识库文章:

http://support.microsoft.com/support


要进行 Visual Studio Service Pack 查询,请执行以下操作:
  1. 从列表中选择“任何产品”。
  2. 将搜索类型设置为“关键字”。
  3. 输入以下内容之一作为搜索短语:
    kbvs600sp2kbvs600sp2bugkbvs600sp2fix					

  4. 单击“查找”。
有关最新的产品信息,请访问 Visual Studio 网站:
参考
注意:本参考信息不属于产品发行版本的原始自述文本:

有关其他信息,请参见下面的 Microsoft 知识库文章:

197298 INFO:Microsoft 库更新:内容、位置和用途
属性

文章 ID:214591 - 上次审阅时间:01/11/2015 02:27:18 - 修订版本: 1.1

  • Microsoft Visual Studio 6.0 Service Pack 1
  • Microsoft Visual Studio 6.0 Service Pack 2
  • kbnosurvey kbarchive kbbug kbinfo kbvs600sp2fix KB214591
反馈