如何将如下的vb代码转换成delphi的dll代码:
Private Sub Command1_Click()'连接
Winsock1.Close
Winsock1.Connect Text1, 502'text1中的是IP地址
Text1.Enabled = False
Command1.Enabled = False
Timer1.Enabled = True
End SubPrivate Sub Command2_Click()'断开连接
Winsock1.Close
Text1.Enabled = True
Command1.Enabled = True
Text2.Text = ""
Text3.Text = ""
Timer1.Enabled = False
End SubPrivate Sub Command3_Click()'发送数据
On Error GoTo ErrProc
Dim sendstr(11) As Byte
Dim i As Integer
Dim aStr As String
Dim strdata() As Byte
If Val(Text4.Text) < 1 Or Val(Text4.Text) > 62 Then
MsgBox "错误,参数长度*2的范围必须为1~62"
Exit Sub
End If
If Val(Text5.Text) < 1 Or Val(Text5.Text) > 127 Then
MsgBox "错误,起始地址的范围必须为1~127"
Exit Sub
End If
sendstr(0) = 0
sendstr(1) = 0
sendstr(2) = 0
sendstr(3) = 0
sendstr(4) = 0
sendstr(5) = 6
sendstr(6) = 1
sendstr(7) = 3
sendstr(8) = Val(Text5.Text) \ 256
sendstr(9) = Val(Text5.Text) Mod 256
sendstr(10) = (Val(Text4.Text) * 2) \ 256
sendstr(11) = (Val(Text4.Text) * 2) Mod 256
For i = 0 To 11
aStr = aStr & Chr(sendstr(i))
Next
Winsock1.SendData aStr '发送数据
Exit Sub
ErrProc:
MsgBox "传输数据失败", vbCritical, "网络传输"End SubPrivate Sub Command4_Click()
End
End SubPrivate Sub winsock1_DataArrival(ByVal bytesTotal As Long)'获得数据
Dim i, j As Integer
Dim strdata() As Byte
i = Winsock1.BytesReceived '返回当前缓冲区中的字节数量
ReDim strdata(i)
Winsock1.GetData strdata, vbByte, i
For j = 0 To i - 1
Text3.Text = Text3.Text + Hex(strdata(j)) + ","
Next
Text3.Text = Text3.Text + Chr(13) + Chr(10)
Exit Sub
End SubPrivate Sub Timer1_Timer()
Dim msg As String
Select Case Winsock1.State
Case 0
msg = "缺省值,关闭套接字"
Case 1
msg = "打开套接字"
Case 2
msg = "正监听端口"
Case 3
msg = "正在进行未定的连接"
Case 4
msg = "正解析主机地址"
Case 5
msg = "主机地址已解析"
Case 6
msg = "正在连接"
Case 7
msg = "已连接"
Case 8
msg = "连接关闭"
Case 9
msg = "错误"
End Select
Text2.Text = Text2.Text + msg + Chr(13) + Chr(10)
End Sub
Private Sub Command1_Click()'连接
Winsock1.Close
Winsock1.Connect Text1, 502'text1中的是IP地址
Text1.Enabled = False
Command1.Enabled = False
Timer1.Enabled = True
End SubPrivate Sub Command2_Click()'断开连接
Winsock1.Close
Text1.Enabled = True
Command1.Enabled = True
Text2.Text = ""
Text3.Text = ""
Timer1.Enabled = False
End SubPrivate Sub Command3_Click()'发送数据
On Error GoTo ErrProc
Dim sendstr(11) As Byte
Dim i As Integer
Dim aStr As String
Dim strdata() As Byte
If Val(Text4.Text) < 1 Or Val(Text4.Text) > 62 Then
MsgBox "错误,参数长度*2的范围必须为1~62"
Exit Sub
End If
If Val(Text5.Text) < 1 Or Val(Text5.Text) > 127 Then
MsgBox "错误,起始地址的范围必须为1~127"
Exit Sub
End If
sendstr(0) = 0
sendstr(1) = 0
sendstr(2) = 0
sendstr(3) = 0
sendstr(4) = 0
sendstr(5) = 6
sendstr(6) = 1
sendstr(7) = 3
sendstr(8) = Val(Text5.Text) \ 256
sendstr(9) = Val(Text5.Text) Mod 256
sendstr(10) = (Val(Text4.Text) * 2) \ 256
sendstr(11) = (Val(Text4.Text) * 2) Mod 256
For i = 0 To 11
aStr = aStr & Chr(sendstr(i))
Next
Winsock1.SendData aStr '发送数据
Exit Sub
ErrProc:
MsgBox "传输数据失败", vbCritical, "网络传输"End SubPrivate Sub Command4_Click()
End
End SubPrivate Sub winsock1_DataArrival(ByVal bytesTotal As Long)'获得数据
Dim i, j As Integer
Dim strdata() As Byte
i = Winsock1.BytesReceived '返回当前缓冲区中的字节数量
ReDim strdata(i)
Winsock1.GetData strdata, vbByte, i
For j = 0 To i - 1
Text3.Text = Text3.Text + Hex(strdata(j)) + ","
Next
Text3.Text = Text3.Text + Chr(13) + Chr(10)
Exit Sub
End SubPrivate Sub Timer1_Timer()
Dim msg As String
Select Case Winsock1.State
Case 0
msg = "缺省值,关闭套接字"
Case 1
msg = "打开套接字"
Case 2
msg = "正监听端口"
Case 3
msg = "正在进行未定的连接"
Case 4
msg = "正解析主机地址"
Case 5
msg = "主机地址已解析"
Case 6
msg = "正在连接"
Case 7
msg = "已连接"
Case 8
msg = "连接关闭"
Case 9
msg = "错误"
End Select
Text2.Text = Text2.Text + msg + Chr(13) + Chr(10)
End Sub
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货