用VB编了个界面,主界面加了个定时器
运行一段时间,就弹出个Error对话框:Shareware Expired.Please restart application.
如果禁止定时器,就不弹出这个对话框,定时器设置的Interval越长,error越迟出现
求高手解决

解决方案 »

  1.   

    Private Sub Timer2_Timer()
    Static return_value1 As Integer
        Static return_value2 As Integer
        Static return_value3 As Integer
        Static return_value4 As Integer
        Static return_value5 As Integer
        Static return_value6 As Integer
        Static return_value7 As Integer
        Static return_value8 As Integer
        Static return_value9 As Integer
        Static return_value10 As Integer
        Static return_value11 As Integer
        Static return_value12 As Integer
        Static return_value20 As Integer
        Static response1 As String
        Static response2 As String
        Static response3 As String
        Static response4 As String
        Static response5 As String
        Static response6 As String
        Static response7 As String
        Static response8 As String
        Static response9 As String
        Static response10 As String
        Static response11 As String
        Static response12 As String
        Static response20 As String
        Dim t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12 As Double
     
     
        'MX62实际位置
        return_value1 = main.PTalkDT1.GetResponse(response1, "m562")
        return_value2 = main.PTalkDT1.GetResponse(response2, "m662")
        return_value3 = main.PTalkDT1.GetResponse(response3, "m762")
            t1 = Val(response1) / 3072 / 55.555556    '5#° C
        
        t2 = Val(response2) / 3072 / 1250        '6#mm  Z
        t3 = Val(response3) / 3072 / 1250        '7#mm  X
        Label41.Caption = t1
        Label40.Caption = t2
        Label39.Caption = t3
        
        'MX61指令位置
        return_value4 = main.PTalkDT1.GetResponse(response4, "m561")
        return_value5 = main.PTalkDT1.GetResponse(response5, "m661")
        return_value6 = main.PTalkDT1.GetResponse(response6, "m761")
        t4 = Val(response4) / 3072 / 55.555556    '5#° C
        t5 = Val(response5) / 3072 / 1250        '6#mm  Z
        t6 = Val(response6) / 3072 / 1250        '7#mm  X
        Label24.Caption = t6
        Label25.Caption = t5
        Label26.Caption = t4
        
        'MX64位置误差
        
        return_value7 = main.PTalkDT1.GetResponse(response7, "#5 F")
        return_value8 = main.PTalkDT1.GetResponse(response8, "#6 F")
        return_value9 = main.PTalkDT1.GetResponse(response9, "#7 F")
        t7 = Val(response7) / 3072     '5#cts C
        t8 = Val(response8) / 3072       '6#cts  Z
        t9 = Val(response9) / 3072         '7#cts  X
        Label45.Caption = t9
        Label46.Caption = t8
        Label47.Caption = t7
        
         'MX66实际速度
        return_value10 = main.PTalkDT1.GetResponse(response10, "m566")
        return_value11 = main.PTalkDT1.GetResponse(response11, "m666")
        return_value12 = main.PTalkDT1.GetResponse(response12, "m766")    t10 = Val(response10) / 3072 / 55.555556   '5#cts C
        't10 = Val(response10)  / 3072
        t11 = Val(response11) / 3072 / 1250       '6#cts  Z
        t12 = Val(response12) / 3072 / 1250        '7#cts  X
        Label42.Caption = t12
        Label43.Caption = t11
        Label44.Caption = t10
    End Submain.PTalkDT1.GetResponse是自己控件里的函数
      

  2.   

    变量用完要随时释放,用Set xxx=Nothing
    否则内存
      

  3.   


    不太明白
    就是例如M62实际位置那里
    return_value1 = main.PTalkDT1.GetResponse(response1, "m562")
      return_value2 = main.PTalkDT1.GetResponse(response2, "m662")
      return_value3 = main.PTalkDT1.GetResponse(response3, "m762")
          t1 = Val(response1) / 3072 / 55.555556 '5#° C
        
      t2 = Val(response2) / 3072 / 1250 '6#mm Z
      t3 = Val(response3) / 3072 / 1250 '7#mm X
      Label41.Caption = t1
      Label40.Caption = t2
      Label39.Caption = t3
    再加上
    Set t1 = Nothing
        Set t2 = Nothing
        Set t3 = Nothing
    ??
    这样还是出现这个问题
      

  4.   

    我的程序也是这样子的,和楼主的出现的是同一个问题
    请问楼主解决了吗? 给点意见  谢谢!set 变量=nothing 用了出现错误,说是要求对象object貌似变量不能赋值=nothing吧?