BUG:在 CoolBar 栏中设置 ComboBox 控件时可能出现一般保护错误

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

本文内容

症状

如果您的 Visual Basic 应用程序在 CoolBar 控件栏中设置了一个 ComboBox 控件,该应用程序在 Microsoft Visual Studio 6.0 Service Pack 4 (SP4) 之前的 Visual Basic 版本中会按预期方式工作。但是, 如果您使用的是 SP4,当承载 CoolBar 控件的窗体关闭时,应用程序可能会停止响应(崩溃)。只有在 Windows 98 或 Windows 95 上运行的系统会出现崩溃。

原因

出现此现象的原因是 CoolBar 栏中设置的控件没有按时清除。

解决方案

要避免此问题,请向 Form_QueryUnload 事件处理程序中添加以下代码行:
CoolBarName.Bands.Clear
				

状态

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

更多信息

重现问题的步骤

  1. 在 Windows 98 的 Visual Studio 6.0 SP4 中,使用 Visual Basic 创建一个标准 EXE 项目。默认情况下将创建 Form1。
  2. 组件对话框中,按 Ctrl+T 键,选择 Microsoft Windows 公共控件-3 6.0 (Sp4),然后单击确定
  3. 向 Form1 添加一个 CoolBar 控件。使用默认设置。
  4. 向其中一个 CoolBar 控件栏中添加一个 ComboBox 控件。
  5. 保存项目并按 F5 键运行应用程序。单击窗体右上角的 X 关闭该窗体,您会看到出现类似于以下内容的错误消息:
    Filename caused a general protection fault in module USER.EXE at 0004:00000499.

    This program has performed an illegal operation and will be shut down.If the problem persists, contact the program vendor.
    Filename 是您的项目的名称。

  6. 在集成开发环境 (IDE) 中重新打开该项目。有时重新打开 Visual Basic 会导致 Windows 崩溃,并且您可能需要重新启动计算机。您还可能会看到“resource is low”(资源不足)消息框,指示您需要关闭在后台运行的其他应用程序或驱动程序。
  7. 将以下代码添加到 Form1:
    Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)
        CoolBar1.Bands.Clear
    End Sub
    						
  8. 保存该项目并按 F5 键运行应用程序。单击窗体右上角的 X 关闭该窗体,您会注意到项目工作正常。

    注意:如果您单击 Visual Basic IDE 中的结束按钮来结束应用程序,您会注意到仍然出现此问题,原因是 Form_QueryUnload 事件处理程序没有机会运行。因此,不要使用 IDE 中的结束按钮来结束您的应用程序。要避免这一问题,您可以用 Visual Studio 6.0 Service Pack 版本 3 替换系统目录中的 SP4 版 Comct332.ocx 文件。同时,您仍然需要实现上一步中提到的变通解决方法。

参考

有关其他信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
189632 BUG:Error in CoolBar Event Can Cause Hanging or Exception
189914 BUG:Wrapped CoolBar Control May GPF Client EXE Program
257630 FIX:Exception Error Closing an Application Containing a CoolBar Control

属性

文章编号: 269618 - 最后修改: 2014年2月24日 - 修订: 2.1
这篇文章中的信息适用于:
  • Microsoft Visual Basic 6.0 专业版?当用于
    • Microsoft Windows 95
    • Microsoft Windows 98 Standard Edition
    • Microsoft Windows NT 4.0
    • Microsoft Windows 2000 Standard Edition
    • Microsoft Windows XP Professional
  • Microsoft Visual Basic 6.0 企业版?当用于
    • Microsoft Windows 95
    • Microsoft Windows 98 Standard Edition
    • Microsoft Windows NT 4.0
    • Microsoft Windows 2000 Standard Edition
    • Microsoft Windows XP Professional
关键字:?
kbnosurvey kbarchive kbbug kbfix kbvs600sp5fix KB269618
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