在VB6中的写这么一段简单的代码,为什么会报错,什么意思啊?DefStr C-FPrivate Sub Form_Load()
    d$ = "321"
    f = "654"
    Print d + f$
End Sub错误信息为:“类型-声明字符与声明的数据类型不符合”在倒数第二行报错,我认为 d 和 f$ 不就是两个没有显示声明的变量吗?
谁能说得清楚帮一忙啦。

解决方案 »

  1.   

    Private Sub Form_Load()
        d$ = "321"
        f = "654"
        Print d + f$ '把 $ 号去掉就行了
    End Sub另外不能有 Option Explicit 语句。
      

  2.   

    Dim C$, D%, E&, F#, H!, G@
    这些 “$,%,&,#,!,@”是变量类型的说明,相当于:
    Dim C As String, D As Integer, E As Long, F As Double, H As Single, G As Currency如你的问题,没有使用 Dim 或其它关键字申明的变量为变体类型,相当于:
    Dim F As Variant
    这个 F 已是变体类型了,所以不能在加 $ 符号申明为 String 类型,否则必然出错。
      

  3.   

    懂了,如果一旦变量使用了限定符来限定为其他类型,特别是默认为变体类型的情况下:
    Private Sub Command1_Click()
    Me.autoRedraw = True
    a="123"       //这样一句系统就把a当成了变体类型
    print a$      //既然已经确定是变体类型,就不能再用限定符$了,报错!
    End Sub这个问题还真别说,听麻烦,不过一般自己编程,不会去任意加个什么限定符了,既麻烦又要出错。
      

  4.   

    不是啊,前面还一句"DefType C - F"呢。
    这句的作用不是让所有变量的默认类型为 String吗?
    那么没有显示声明的 f 也应该是String 啊,这和 f$ 是一样的。
      

  5.   

    我一直在使用VB。
    以VB的命名规范来讲。最好这么做
    DIM F AS STRING
    DIM D AS STRING 
    或者是别的什么数据类型。这样做别人维护你的程序的时候也会轻松很多。
      

  6.   

    1.DefStr C-F
      只是申明了你所有以字母C,D,E,F开头的变量如果没有指定明确的数据类型,则当String类型处理.2.
    Private Sub Form_Load()
        d$ = "321"
        f = "654"
        Print d + f$
    End Sub
    如果在你的程序中用了 Option Explicit 限定,则变量d,f必须定义.3. 语句 Print d + f$   "f$"应为f,因为:你没有加双引号就会当变量处理,而当变更处理时$是不
       许的.