当前位置:编程学习 > VB >>

小妹新手上路,VB程序调试报错,想不通问题在哪里,基于VB的PCI数据采集器

请教各位前辈

以下过程的运行结果是:
   编译错误:子程序过函数未定义    高亮指向Private Sub TimerDI1_Timer()中的myArray      

这个程序里只有一个窗体和两个计时器,一个是timerDI1,时间30ms,一个是timerDI2,时间500ms

源代码如下:
Private Sub myDI(myAry() As Integer)     ‘自定义一个子过程

Dim i As Integer
i = AM9110_DI(hPLX9052) ‘这是一个PCI的应用函数,用于同一时刻读入16个独立通道的开关量值赋给i
'1
If ((i And 1) = 1) Then     ‘把i和16通道的每一位作比较,以判断那些通道是1哪些是0
myAry(j, 1) = 1              然后把值赋给数组的一行,每调用一次赋值一行,计划一共
Else                          16次
myAry(j, 1) = 0
End If

'2
If ((i And 2) = 2) Then
myAry(j, 2) = 1
Else
myAry(j, 2) = 0
End If

'3
If ((i And 4) = 4) Then
myAry(j, 3) = 1
Else
myAry(j, 3) = 0
End If

'4
If ((i And 8) = 8) Then
myAry(j, j4) = 1
Else
myAry(j, 4) = 0
End If

。。。。。。。。。

'16
If ((i And 32768) = 32768) Then
myAry(j, 16) = 0
Else
myAry(j, 16) = 0
End If

While j <= 16                    ‘每隔一个timerDI1时间读一次,一共读进16个值
j = j + 1
Wend

End Sub


Private Sub Form_Load()                             ‘载入窗体的时候什么都没有开始

TimerDI1.Enabled = False
TimerDI2.Enabled = False

End Sub

Private Sub Form_Click()                             ‘在点击一次窗体之后开始测试
Static j As Integer                                        做了一些初始化
j = 1
TimerDI1.Enabled = True
TimerDI2.Enabled = True
Static myAry(1 To 16, 1 To 16) As Integer
Static myArray(1 To 16, 1 To 16) As Integer

End Sub


Private Sub TimerDI1_Timer()
Call myDI(myArray())                        ‘调用刚刚定义的子过程
End Sub


Private Sub TimerDI2_Timer()                     

TimerDI1.Enabled = False                     ‘如果timerDI2时间到了,也不读取了

Dim m, n As Integer                          ‘ 把数组打印出来看看结果
For m = 1 To 16
 For n = 1 To 16
   Print myArray(m, n)
 Next n
Next m

End Sub

实在想不出错在哪里了。请各位前辈不吝赐教
--------------------编程问答-------------------- Private Sub Form_Click()                            ‘在点击一次窗体之后开始测试 
Static j As Integer                                        做了一些初始化 
j = 1 
TimerDI1.Enabled = True 
TimerDI2.Enabled = True 
Static myAry(1 To 16, 1 To 16) As Integer 
Static myArray(1 To 16, 1 To 16) As Integer 

End Sub 


Private Sub TimerDI1_Timer() 
Call myDI(myArray())                        ‘调用刚刚定义的子过程 
End Sub 

局部变量啊
读完end sub
已经释放掉了
补充:VB ,  基础类
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,