Windows 7下VB 6中的“用户定义的类型未定义”错误

时间:2011-01-13 07:31:01

标签: windows-7 vb6

我使用的是Windows 7,我的项目是在VB 6.0中。我在执行程序时遇到错误。它显示错误:

  

未定义用户定义的类型。

这是我的代码:

Private Sub Toolbar1_ButtonClick(ByVal Button As MSComctlLib.Button)
    Select Case Button.Key
        Case "trace": Call mntrace_Click
        Case "snrplot": Call mnSnrplot_Click
        Case "skyplot": Call mnskyplot_Click
        Case "nmea": Call mnNmea_Click
        Case "navigation": Call mnNavigation_Click
        Case "survey": Call mnSurvey_Click
        Case "pause/start": Call mnpause_Click
        Case "save": Call mnsave_Click
        Case "print": Call mnprint_Click
        Case "offline": Call mnoffline_Click
    End Select
End Sub

如何解决此错误?

3 个答案:

答案 0 :(得分:24)

当出现错误时,编译器会自动突出显示函数声明的第一行。这意味着错误发生在该行的某个地方。有时这并不像你想的那样有用,但在这种情况下,它设法告诉你很多。

具体来说,函数声明中出现的唯一“用户定义类型”(实际上,唯一的“类型”)是MSComctlLib.Button。编译器错误消息告诉您的是它不知道MSComctlLib.Button是什么。因此,它假定它是“用户定义的”类型,因为它通常不知道用户在说什么。 : - )

无论哪种方式,修复都很简单:您需要告诉编译器MSComctlLib.Button是什么。在这种情况下,假设它是用户定义的类型,它猜错了。它实际上是Microsoft Windows公共控件库中提供的按钮控件。 要告诉VB 6有关此控件的信息,您需要将相应的组件添加到项目中。请按照以下步骤操作:

  1. 从“项目”菜单中选择“组件”。

  2. 在出现的对话框中,向下滚动列表中的2/3到M的位置。通过“Microsoft Windows Common Controls 6.0”和“Microsoft Common Controls-2 6.0”项目进行检查。 (如果您的服务包名称不同,请不要担心。)

    Components dialog in VB 6 IDE

  3. 单击“确定”按钮。如果你很快,你会看到一些额外的控件被添加到你的工具箱中。这些是您刚刚添加的组件库提供的控件。在这些控件中有一个名为Button

  4. 最后,尝试再次编译和运行你的项目 - 这次一切都应该没问题,因为现在编译器知道MSComctlLib.Button类型是什么。如果您还没有,它是工具栏上显示的按钮。工具栏控件由公共控件库提供,它包含一个类型,用于定义工具栏上显示的单个按钮。

答案 1 :(得分:0)

听起来你错过了对象库的引用。

(您是否在其他地方没有错误地执行过它?)

答案 2 :(得分:0)

我认为您只是从其他地方复制并粘贴了该代码。通常,如果您想引用MSComctlLib,在访问类型库之前,您通常会首先执行Cody Gray所述的步骤。