网上看到一段读硬盘id的代码,如下,请注意红色部分:Private Declare Function DiskID32 Lib "DiskID32.DLL" (ByRef DiskModel As Byte, ByRef DiskID As Byte) As LongPrivate Sub Command1_Click()
Dim DiskModel(31) As Byte, DiskID(31) As Byte, i As Integer, Model As String, ID As String
.......
For i = 0 To 31
If Chr(DiskModel(i)) <> Chr(0) Then
Model = Model & Chr(DiskModel(i))
End If
If Chr(DiskID(i)) <> Chr(0) Then
ID = ID & Chr(DiskID(i))
End If
Next
End Sub问题:在函数定义中参数是2个byte值,为什么函数调用用,用户定义的两个byte()数组中都有值了?
是如何实现的?谢谢
Dim DiskModel(31) As Byte, DiskID(31) As Byte, i As Integer, Model As String, ID As String
.......
For i = 0 To 31
If Chr(DiskModel(i)) <> Chr(0) Then
Model = Model & Chr(DiskModel(i))
End If
If Chr(DiskID(i)) <> Chr(0) Then
ID = ID & Chr(DiskID(i))
End If
Next
End Sub问题:在函数定义中参数是2个byte值,为什么函数调用用,用户定义的两个byte()数组中都有值了?
是如何实现的?谢谢
Dim DiskModel(31) As Byte, DiskID(31) As Byte, i As Integer, Model As String, ID As String
If DiskID32(DiskModel(0), DiskID(0)) <> 1 Then
MsgBox "get diskid32 err"
Exit Sub
End If
For i = 0 To 31
If Chr(DiskModel(i)) <> Chr(0) Then
Model = Model & Chr(DiskModel(i))
End If
If Chr(DiskID(i)) <> Chr(0) Then
ID = ID & Chr(DiskID(i))
End If
Next
End Sub
Dim DiskModel(31) As Byte, DiskID(31) As Byte, i As Integer, Model As String, ID As String
If DiskID32(DiskModel(0), DiskID(0)) <> 1 Then
MsgBox "get diskid32 err"
Exit Sub
End If
For i = 0 To 31
If Chr(DiskModel(i)) <> Chr(0) Then
Model = Model & Chr(DiskModel(i))
End If
If Chr(DiskID(i)) <> Chr(0) Then
ID = ID & Chr(DiskID(i))
End If
Next
End Sub