在 Visual Studio 2005 或 Visual Studio .NET 中使用 Visual Basic 6.0 控件时,收到“You do not have a license to use this control”错误消息

文章翻译 文章翻译
文章编号: 318597 - 查看本文应用于的产品
本文的发布号曾为 CHS318597
重要说明:本文包含有关如何修改注册表的信息。修改注册表之前,一定要先进行备份,并且一定要知道在发生问题时如何还原注册表。有关如何备份、还原和修改注册表的更多信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
256986 Microsoft Windows 注册表说明
展开全部 | 关闭全部

本文内容

症状

当您在 Microsoft Visual Studio 2005 或 Microsoft Visual Studio .NET 中使用 Microsoft Visual Basic 6.0 ActiveX 控件时,可能会遇到以下问题:
  • 在您尝试将随 Visual Basic 6.0 一起提供的 ActiveX 控件添加到 Visual Studio 2005 或 Visual Studio .NET 窗体中时,会收到以下错误消息:
    You do not have a license to use this ActiveX control.
    您可以将该控件成功添加到工具箱中,但如果在设计时添加该控件,则会显示此错误消息。
  • 在您将 Visual Basic 6.0 项目升级到 Visual Studio 2005 或 Visual Studio .NET 时,如果“升级向导”在窗体中进行分析,则会显示以下错误消息:
    Visual Basic Upgrade Wizard error
    Upgrade failed:Exception occurred:Could not load referenced component:comdlg32.ocx(1.2.0)
    You need to install this component before you upgrade the project.It is recommended you install VB6.0, with all referenced components, and ensure the application compiles and runs before upgrading.
    在您单击“确定”后,“升级向导”关闭,然后转换进程停止。

原因

您必须具有设计时许可证,才可以使用 Visual Basic 6.0 ActiveX 控件。造成这些错误的原因是系统注册表不包含设计时许可证信息。在您升级包含 Visual Basic 6.0 ActiveX 控件的项目时,或者尝试在 Visual Studio 2005 或 Visual Studio .NET 窗体上使用 Visual Basic 6.0 ActiveX 控件时,这些控件必须安装在目标系统上并且具有在目标系统上使用的许可证。

Visual Studio 2005 和 Visual Studio .NET 不会安装 Visual Basic 6.0 ActiveX 控件的许可证信息,除非 Visual Basic 6.0 控件安装在运行 Visual Studio 2005 或 Visual Studio .NET 的计算机上。如果计算机上从未安装过 Visual Basic 6.0,则可能会出现该问题。

您不会在同时安装了 Visual Basic 6.0 和 Visual Studio 2005 或 Visual Studio .NET 的计算机上收到这些错误,因为 Visual Basic 6.0 会安装这些组件并注册许可证。

解决方案

若要解决此问题,必须在升级项目之前或在 Visual Studio 2005 或 Visual Studio .NET 窗体上使用 Visual Basic 6.0 ActiveX 控件之前,在计算机上为 ActiveX 控件安装 .ocx 文件。为此,请使用下列方法之一:
  • 在运行 Visual Studio 2005 或 Visual Studio .NET 的计算机上安装 Visual Basic 6.0。
  • 向注册表添加授权密钥。

方法 1:在运行 Visual Studio 2005 或 Visual Studio .NET 的计算机上安装 Visual Basic 6.0

与旧版本 Visual Basic 不同,在同一个系统中安装 Visual Basic 6.0 和 Visual Studio 2005 或 Visual Studio .NET 程序不会产生冲突。在许多情况下,Microsoft 建议在运行 Visual Studio 2005 或 Visual Studio .NET 的计算机上安装 Visual Basic 6.0。

如果 Visual Basic 6.0 在计算机中可用,则在升级到 Visual Studio 2005 或 Visual Studio .NET 之前,可以更容易地更改原始的 Visual Basic 6.0 项目。有关如何安装 Visual Basic 6.0 以及如何将项目从 Visual Basic 6.0 升级到 Visual Studio 2005 或 Visual Studio .NET 的更多信息,请参见“参考”一节。

方法 2:向注册表添加授权密钥

警告:注册表编辑器或其他方法使用不当可能导致严重问题。这些问题可能需要重新安装操作系统才能解决。Microsoft 不能保证您可以解决这些问题。修改注册表需要您自担风险。

若要将 Visual Basic 6.0 控件的授权密钥添加到注册表中,请执行以下步骤:
  1. 将具有 \Extras\VB6 Controls 文件夹的 Visual Studio 2005 或 Visual Studio .NET 安装磁盘插入 CD-ROM 或 DVD-ROM 驱动器中。下表中介绍了 CD-ROM 上的各产品版本所对应的磁盘:

    Visual Studio 2005(非 Microsoft Developer Network [MSDN] 磁盘)
    • Professional Edition - 磁盘 2
    • Standard Edition - 磁盘 1
    注意:VB6Controls.reg 注册表文件不在任何 Visual Studio 2005 产品的分发介质上。

    Visual Studio .NET 2003(非 MSDN 磁盘)
    • 所有 Enterprise Edition - 磁盘 2
    • Professional Edition - 磁盘 2
    • Standard Edition - 磁盘 1
    • Academic Edition - 磁盘 2
    Visual Studio .NET 2002(非 MSDN 磁盘)
    • 所有 Enterprise Edition - 磁盘 4
    • Professional Edition - 磁盘 4
    • Standard Edition - 磁盘 3
    • Academic Edition - 磁盘 4
  2. 单击“开始”,然后单击“运行”。
  3. 在“运行”对话框中,键入 regedit,然后单击“确定”。
  4. 在“注册表编辑器”对话框中,单击“文件”菜单上的“导入”。
  5. 在安装 CD-ROM 上找到 \Extras\VB6 Controls 文件夹,选择 VB6Controls.reg 文件,然后单击“打开”。此步骤将所有 Visual Basic 6.0 ActiveX 控件许可证密钥插入到注册表中。

状态

Microsoft 已经确认这是在“适用于”一节中列出的 Microsoft 产品中存在的错误。

更多信息

.ocx 文件位于 Windows 文件夹的 SYSTEM32 子文件夹中。以下列表包括一些 ActiveX 控件及其相应的文件名:
  • ADO Data Control 6.0 (OLEDB) - Msadodc.ocx
  • Chart Control 6.0 - Mschrt20.ocx
  • Chart Control 6.0 (OLEDB) - Mschrt20.ocx
  • Comm Control 6.0 - Mscomm32.ocx
  • Common Dialog Control 6.0 - Comdlg32.ocx
  • Data Bound Grid Control 5.0(SP3) - Dbgrid32.ocx
  • Data Bound List Controls 6.0 - Dblist32.ocx
  • DataGrid Control 6.0 (OLEDB) - Msdatgrd.ocx
  • DataList Control 6.0 (OLEDB) - Msdatlst.ocx
  • FlexGrid Control 6.0 - Msflxgrd.ocx*
  • Internet Transfer Control 6.0 - Msinet.ocx
  • MAPI Controls 6.0 - Msmapi32.ocx
  • Masked Edit Control 6.0 - Msmask32.ocx
  • Multimedia Control 6.0 - Mci32.ocx
  • RemoteData Control 6.0 - Msrdc20.ocx
  • PictureClip Control 6.0 - Picclp32.ocx
  • Rich TextBox Control 6.0 - Richtx32.ocx
  • SysInfo Control 6.0 - Sysinfo.ocx
  • Windowless Controls 6.0 - Mswless.ocx
  • Windows Common Controls - Comctl32.ocx
  • Windows Common Controls 6.0 - Mscomctl.ocx
  • Windows Common Controls-2 5.0 (SP2) - Comct232.ocx
  • Windows Common Controls-2 6.0 - Mscomct2.ocx
  • Windows Common Controls-3 6.0 - Comct332.ocx
  • Winsock Control 6.0 - Mswinsck.ocx
* 在 Visual Studio .NET 2002 中,包含 FlexGrid Control 6.0 许可证的 VB6Controls.reg 文件是错误的。但是,在 Visual Studio .NET 2003 中,该 VB6Controls.reg 文件已被更正。

注意:您必须具有 Visual Studio 许可协议,才可以获取此更正后的 Vb6control.reg 文件。此支持服务是免费的。

要获取 Microsoft 产品支持服务电话号码和支持费用信息的完整列表,请访问下面的 Microsoft 网站:
http://support.microsoft.com/contactus/?ws=support

重现问题的步骤

尝试在 Visual Studio 2005 或 Visual Studio .NET 窗体上添加 ActiveX 控件时出错

  1. 在计算机 A 上安装 Visual Studio 2005 或 Visual Studio .NET。确保该计算机上从未安装过 Visual Basic 6.0。
  2. 在计算机 B 上仅安装 Visual Basic 6.0。
  3. 将计算机 B 上的 SYSTEM32 文件夹中的某个 Visual Basic .ocx 文件复制到计算机 A 上的 SYSTEM32 文件夹中。
  4. 在计算机 A 上启动 Visual Studio 2005 或 Visual Studio .NET,然后在 Microsoft Visual Basic 2005 或 Microsoft Visual Basic .NET 中创建一个新的 Windows 应用程序项目。
  5. 在工具箱中右键单击,然后单击“自定义工具箱”。
  6. 在“COM 组件”选项卡中,单击“浏览”。
  7. 选择您在第 3 步中复制的 .ocx 文件,然后单击“打开”。请注意,该控件被添加到列表中并且其复选框被选中。单击“确定”。
  8. 将该 ActiveX 控件从工具箱拖到窗体上。您会收到下面的错误消息:
    You do not have a license to use this ActiveX control.

“升级向导”错误

  1. 在从未安装过 Visual Basic 6.0 的计算机上安装 Visual Studio 2005 或 Visual Studio .NET。
  2. 启动 Visual Studio 2005 或 Visual Studio .NET。
  3. 在“文件”菜单上,单击“打开”。
  4. 选择在窗体上包含 ActiveX 控件的 Visual Basic 6.0 项目,然后单击“确定”。这将启动“升级向导”。
  5. 完成“升级向导”中的步骤。您会收到下面的错误消息:
    Visual Basic Upgrade Wizard error

    Upgrade failed:Exception occurred:Could not load referenced component:comdlg32.ocx(1.2.0)
    You need to install this component before you upgrade the project.It is recommended you install VB6.0, with all referenced components, and ensure the application compiles and runs before upgrading.
  6. 在该错误消息对话框中单击“确定”。请注意,这将关闭该“升级向导”。

参考

有关更多信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
311324 在 Visual Basic 6.0 升级项目所在的计算机上安装 Visual Basic .NET 或 Visual Basic 2005

属性

文章编号: 318597 - 最后修改: 2006年10月20日 - 修订: 4.4
这篇文章中的信息适用于:
  • Microsoft Visual Studio 2005 Standard Edition
  • Microsoft Visual Studio 2005 Professional
  • Microsoft Visual Studio .NET 2003 Professional Edition
  • Microsoft Visual Studio .NET 2003 Enterprise Architect
  • Microsoft Visual Studio .NET 2003 Enterprise Developer
  • Microsoft Visual Studio .NET 2003 Academic Edition
  • Microsoft Visual Studio .NET 2002 专业版
  • Microsoft Visual Studio .NET 2002 企业级结构设计版
  • Microsoft Visual Studio .NET 2002 企业级开发版
  • Microsoft Visual Studio .NET 2002 Academic Edition
关键字:?
kbvs2005swept kbvs2005applies kbtshoot kberrmsg kbprb KB318597
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